Det sista steget för att skapa ett program är att översätta en algoritm skriven på ett av programmeringsspråken (C/C++, Pascal, etc.) till ett maskinspråk på låg nivå. Detta beror på det faktum att för att utföra någon uppgift måste datorer ges kommandon på ett språk de förstår, nära binärt och som arbetar med primitiva datastrukturer (bit, byte eller ord). Processen att översätta domänspecifika uttalanden av högnivåspråk till binär kod kallas översättning. Det finns två översättningsmetoder - sammanställning och tolkning.
Compiler - vad är det?
Analys av många tolkningar av termerna "kompilator" och "kompilering" gör att vi kan lyfta fram följande definition. En kompilator är ett program utformat för att översätta texten i en källalgoritm från ett högnivåspråk till en motsvarande uppsättning instruktioner på ett maskinorienterat språk. Detta är den så kallade objektkoden, för den efterföljande sammansättningen av den resulterande objektkoden till en färdig att använda programmodul.
Kompilator och tolk - likheter och skillnader
En tolk är ett verktyg somsamt en kompilator, designad för att översätta källkod till maskinkod. Men till skillnad från kompilatorn, kör tolken varje gång med programmet och utför översättningen rad för rad.
Du kan säga att kompilatorn och tolken är språkprocessorer som gör att datorn kan känna igen och utföra kommandon från programmeraren.
Kompilatorklassificering
Kompilatorer klassificeras huvudsakligen efter funktioner relaterade till deras praktiska tillämpningsområden.
Vectorizing compiler är ett verktyg som översätter källkod till objektkod och är anpassat för datorer utrustade med vektorprocessorer.
En flexibel kompilator är programmerad på ett högnivåspråk på ett modulärt sätt. Dess hantering utförs med hjälp av tabeller. Det är också möjligt att köra det med kompilatorn av kompilatorer.
Inkrementell kompilator är en språkprocessor som översätter separata fragment av källkod och tillägg till den. Det undviker dock att kompilera om hela programmet.
En tolkande (stepping) kompilator är ett verktyg som sekventiellt utför oberoende kompilering av varje sats eller kommando för en källkod på hög nivå.
En kompilator av kompilatorer är en översättare som kan acceptera en formell beskrivning för ett programmeringsspråk och självständigt generera en kompilator för vilket språk som helst.
Felsökningskompilatorn låter dig hitta och fixa vissa typer av syntaxfel som görs när du skriver källkod
En inbyggd kompilator har en permanent plats i RAM-minnet och kan därför återanvändas för ett brett spektrum av uppgifter.
Den egenkompilerade kompilatorn är skriven på samma språk som översättningen.
Den universella kompilatorn är baserad på en formell beskrivning av de semantiska och syntaktiska parametrarna för inmatningsspråket. Huvudkomponenterna i ett sådant verktyg är de centrala, syntaktiska och semantiska laddarna.
Kompilatorenhet
En kompilator och en länk är kärnan i alla kompilatorer. Ofta, vid kompilering, används en extern länkare, och kompilatorn själv utför endast översättningsfunktionen. Det händer också att kompilatorn implementeras som ett slags managerprogram som är associerat med översättaren (eller översättare, om olika programmeringsspråk användes när källkoden skrevs) och länkaren och startar deras exekvering vid behov.
Programmeringsspråk och översättningsmetoder
Trots att ett program skrivet på vilket programmeringsspråk som helst kan både kompileras och tolkas, har många högnivåspråk en anlag för en eller annan översättningsmetod. Så C-språket designades ursprungligen för kompilering och Java - för tolkningen av det skrivna programmet. håller på att utvecklasC-kompilatorer är ganska enkla, tack vare dess relativt låga nivå och ett litet antal strukturella element.
Fördelar och nackdelar med kompilatorer och tolkar. Applikationer
Observera att kompilerade applikationer är snabbare än tolkade, men samtidigt beror maskinkoden som erhålls som ett resultat av kompileringen på hårdvaruplattformen. Så, ett program skrivet och kompilerat för Windows kommer inte att fungera, till exempel i Linux. Därför, i fallet med internetapplikationer, när det är omöjligt att säga i förväg i vilken miljö de kommer att arbeta, använder de tolkning eller bytekod (i det här fallet konverteras källprogrammet till en mellanform som kan köras på olika hårdvara plattformar).