Hva er en kompilator, eller hvordan få en datamaskin til å forstå hva du vil ha fra den?

Innholdsfortegnelse:

Hva er en kompilator, eller hvordan få en datamaskin til å forstå hva du vil ha fra den?
Hva er en kompilator, eller hvordan få en datamaskin til å forstå hva du vil ha fra den?

Video: Hva er en kompilator, eller hvordan få en datamaskin til å forstå hva du vil ha fra den?

Video: Hva er en kompilator, eller hvordan få en datamaskin til å forstå hva du vil ha fra den?
Video: Полный курс TypeScript за час | Тайпскрипт для начинающих 2024, Kan
Anonim

Den siste fasen av å lage et program er å oversette en algoritme skrevet på et av programmeringsspråkene (C/C++, Pascal, etc.) til et maskinspråk på lavt nivå. Dette skyldes det faktum at for å utføre en oppgave, må datamaskiner gis kommandoer på et språk de forstår, nær binært og opererer med primitive datastrukturer (bit, byte eller ord). Prosessen med å oversette domenespesifikke utsagn av høynivåspråk til binær kode kalles oversettelse. Det er to oversettelsesmetoder – kompilering og tolkning.

kompilatoren er
kompilatoren er

Compiler - hva er det?

Analyse av mange tolkninger av begrepene "kompilator" og "kompilering" lar oss fremheve følgende definisjon. En kompilator er et program designet for å oversette teksten til en kildealgoritme fra et høynivåspråk til et tilsvarende sett med instruksjoner på et maskinorientert språk. Dette er den såk alte objektkoden, for den påfølgende sammenstillingen av den resulterende objektkoden til en klar til bruk programmodul.

Kompilator og tolk - likheter og forskjeller

En tolk er et verktøy somsamt en kompilator, designet for å oversette kildekode til maskinkode. Men i motsetning til kompilatoren, kjører tolken hver gang med programmet og utfører oversettelsen linje for linje.

Du kan si at kompilatoren og tolken er språkprosessorer som lar datamaskinen gjenkjenne og utføre kommandoer gitt av programmereren.

kompilatorklassifisering

kompilatoren er et program
kompilatoren er et program

Kompilatorer klassifiseres hovedsakelig etter funksjoner knyttet til deres praktiske bruksområder.

Vectorizing compiler er et verktøy som oversetter kildekode til objektkode og er tilpasset datamaskiner utstyrt med vektorprosessorer.

En fleksibel kompilator er programmert i et høynivåspråk på en modulær måte. Administrasjonen utføres ved hjelp av tabeller. Det er også mulig å kjøre det ved å bruke kompilatoren til kompilatorer.

Inkrementell kompilator er en språkprosessor som oversetter separate fragmenter av kildekode og tillegg til den. Den unngår imidlertid å rekompilere hele applikasjonen.

En fortolkende (stepping) kompilator er et verktøy som sekvensielt utfører uavhengig kompilering av hver setning eller kommando for en kildekode på høyt nivå.

En kompilator av kompilatorer er en oversetter som er i stand til å godta en formell beskrivelse for et programmeringsspråk og uavhengig generere en kompilator for et hvilket som helst språk.

kompilator og tolk
kompilator og tolk

Feilsøkingskompilatoren lar deg finne og fikse noen typer syntaksfeil som er gjort når du skriver kildekode

En hjemmehørende kompilator opptar en permanent plass i RAM og kan derfor gjenbrukes av et bredt spekter av oppgaver.

Den egenkompilerte kompilatoren er skrevet på samme språk som oversettelsen.

Den universelle kompilatoren er basert på en formell beskrivelse av de semantiske og syntaktiske parameterne til inndataspråket. Hovedkomponentene i et slikt verktøy er kjernelastere, syntaktiske og semantiske lastere.

kompilatorenhet

En kompilator og en linker er kjernen i enhver kompilator. Ofte, ved kompilering, brukes en ekstern linker, og kompilatoren selv utfører bare oversettelsesfunksjonen. Det hender også at kompilatoren er implementert som et slags managerprogram som er assosiert med oversetteren (eller oversetterne, hvis forskjellige programmeringsspråk ble brukt ved skriving av kildekoden) og linkeren og starter kjøringen når det er nødvendig.

Programmeringsspråk og oversettelsesmetoder

språk kompilator
språk kompilator

Til tross for at et program skrevet på et hvilket som helst programmeringsspråk kan både kompileres og tolkes, har mange høynivåspråk en disposisjon for en eller annen oversettelsesmetode. Så C-språket ble opprinnelig designet for kompilering, og Java - for tolkning av det skriftlige programmet. Er under utviklingC-kompilatorer er ganske enkle, takket være det relativt lave nivået og et lite antall strukturelle elementer.

Fordeler og ulemper med kompilatorer og tolker. Applikasjoner

Merk at kompilerte applikasjoner er raskere enn tolkede, men samtidig avhenger maskinkoden som oppnås som et resultat av kompilering av maskinvareplattformen. Så et program skrevet og kompilert for Windows vil ikke fungere, for eksempel i Linux. Derfor, når det gjelder Internett-applikasjoner, når det er umulig å si på forhånd i hvilket miljø de vil fungere, bruker de tolkning eller bytekode (i dette tilfellet konverteres kildeprogrammet til en mellomform som kan kjøres på forskjellig maskinvare plattformer).

Anbefalt: