Den sidste fase af oprettelsen af et program er at oversætte en algoritme skrevet på et af programmeringssprogene (C/C++, Pascal osv.) til et maskinsprog på lavt niveau. Dette skyldes det faktum, at for at udføre enhver opgave, skal computere have kommandoer på et sprog, de forstår, tæt på binært og opererer med primitive datastrukturer (bit, byte eller ord). Processen med at oversætte domænespecifikke udsagn af sprog på højt niveau til binær kode kaldes oversættelse. Der er to oversættelsesmetoder - kompilering og tolkning.
Compiler - hvad er det?
Analyse af mange fortolkninger af begreberne "compiler" og "compilation" giver os mulighed for at fremhæve følgende definition. En compiler er et program designet til at oversætte teksten i en kildealgoritme fra et sprog på højt niveau til et tilsvarende sæt instruktioner i et maskinorienteret sprog. Dette er den såkaldte objektkode, til den efterfølgende samling af den resulterende objektkode til et brugsklart programmodul.
Kompilator og tolk - ligheder og forskelle
En tolk er et værktøj, dersamt en compiler, designet til at oversætte kildekode til maskinkode. Men i modsætning til compileren kører tolken hver gang med programmet og udfører oversættelsen linje for linje.
Du kan sige, at compileren og tolken er sprogprocessorer, der gør det muligt for computeren at genkende og udføre kommandoer givet af programmøren.
Compiler-klassifikation
Compilere klassificeres hovedsageligt efter funktioner relateret til deres praktiske anvendelsesområder.
Vectorizing compiler er et hjælpeprogram, der oversætter kildekode til objektkode og er tilpasset computere udstyret med vektorprocessorer.
En fleksibel compiler er programmeret i et højt niveau sprog på en modulær måde. Dens styring udføres ved hjælp af tabeller. Det er også muligt at udføre det ved hjælp af compileren af compilere.
Incremental compiler er en sprogprocessor, der genoversætter separate fragmenter af kildekode og tilføjelser til den. Det undgår dog at kompilere hele applikationen igen.
En fortolkende (stepping) compiler er et værktøj, der sekventielt udfører uafhængig kompilering af hver sætning eller kommando i en kildekode på højt niveau.
En compiler af compilere er en oversætter, der er i stand til at acceptere en formel beskrivelse af et programmeringssprog og selvstændigt generere en compiler til ethvert sprog.
Fejlretningskompileren giver dig mulighed for at finde og rette nogle slags syntaksfejl, der er lavet, når du skriver kildekode
En resident compiler optager en permanent plads i RAM og kan derfor genbruges til en lang række opgaver.
Den selvkompilerede compiler er skrevet på samme sprog som oversættelsen.
Den universelle compiler er baseret på en formel beskrivelse af inputsprogets semantiske og syntaktiske parametre. Hovedkomponenterne i et sådant hjælpeprogram er de centrale, syntaktiske og semantiske indlæsere.
Compiler-enhed
En compiler og en linker er kernen i enhver compiler. Ofte, når der kompileres, bruges en ekstern linker, og compileren selv udfører kun oversættelsesfunktionen. Det sker også, at compileren er implementeret som en slags managerprogram, der er knyttet til oversætteren (eller oversætterne, hvis der blev brugt forskellige programmeringssprog ved skrivning af kildekoden) og linkeren og starter deres eksekvering, når det er nødvendigt.
Programmeringssprog og oversættelsesmetoder
På trods af at et program skrevet på et hvilket som helst programmeringssprog både kan kompileres og fortolkes, har mange sprog på højt niveau en disposition for en eller anden oversættelsesmetode. Så C-sproget blev oprindeligt designet til kompilering, og Java - til fortolkningen af det skrevne program. Er under udviklingC-kompilere er ret nemme takket være dets relativt lave niveau og et lille antal strukturelle elementer.
Fordele og ulemper ved compilere og tolke. Ansøgninger
Bemærk, at kompilerede applikationer er hurtigere end fortolkede, men på samme tid afhænger maskinkoden, der opnås som et resultat af kompilering, af hardwareplatformen. Så et program skrevet og kompileret til Windows vil for eksempel ikke fungere i Linux. Derfor, i tilfælde af internetapplikationer, når det er umuligt at sige på forhånd i hvilket miljø de vil arbejde, bruger de fortolkning eller bytekode (i dette tilfælde konverteres kildeprogrammet til en mellemform, der kan udføres på forskellig hardware platforme).