Wat is een compiler, of Hoe laat je een computer begrijpen wat je ervan wilt?

Inhoudsopgave:

Wat is een compiler, of Hoe laat je een computer begrijpen wat je ervan wilt?
Wat is een compiler, of Hoe laat je een computer begrijpen wat je ervan wilt?

Video: Wat is een compiler, of Hoe laat je een computer begrijpen wat je ervan wilt?

Video: Wat is een compiler, of Hoe laat je een computer begrijpen wat je ervan wilt?
Video: Compilers: Hoe Mario Beweegt 2024, Mei
Anonim

De laatste fase van het maken van een programma is het vertalen van een algoritme dat is geschreven in een van de programmeertalen (C/C++, Pascal, enz.) naar een machinetaal op laag niveau. Dit komt door het feit dat computers, om elke taak uit te voeren, opdrachten moeten krijgen in een taal die ze begrijpen, dicht bij binair en werkend met primitieve gegevensstructuren (bit, byte of woord). Het proces van het vertalen van domeinspecifieke verklaringen van talen op hoog niveau naar binaire code wordt vertaling genoemd. Er zijn twee vertaalmethoden - compilatie en interpretatie.

compiler is
compiler is

Compiler - wat is het?

Analyse van vele interpretaties van de termen "compiler" en "compilatie" stelt ons in staat om de volgende definitie te benadrukken. Een compiler is een programma dat is ontworpen om de tekst van een bronalgoritme van een taal op hoog niveau te vertalen naar een equivalente set instructies in een machinegeoriënteerde taal. Dit is de zogenaamde objectcode, voor de daaropvolgende montage van de resulterende objectcode in een gebruiksklare programmamodule.

Compiler en tolk - overeenkomsten en verschillen

Een tolk is een hulpprogramma datevenals een compiler, ontworpen om de broncode in machinecode te vertalen. Echter, in tegenstelling tot de compiler, draait de interpreter elke keer met het programma en voert de vertaling regel voor regel uit.

Je kunt zeggen dat de compiler en de interpreter taalprocessors zijn waarmee de computer de opdrachten van de programmeur kan herkennen en uitvoeren.

Compilerclassificatie

compiler is een programma
compiler is een programma

Compilers worden voornamelijk geclassificeerd op basis van kenmerken die verband houden met hun toepassingsgebied.

Vectorizing compiler is een hulpprogramma dat de broncode verta alt in objectcode en is aangepast voor computers die zijn uitgerust met vectorprocessors.

Een flexibele compiler is modulair geprogrammeerd in een taal op hoog niveau. Het beheer wordt uitgevoerd met behulp van tabellen. Het is ook mogelijk om het uit te voeren met behulp van de compiler van compilers.

Incrementele compiler is een taalprocessor die afzonderlijke fragmenten van broncode en toevoegingen eraan opnieuw verta alt. Het voorkomt echter dat de hele applicatie opnieuw moet worden gecompileerd.

Een interpretatieve (stepping) compiler is een hulpprogramma dat opeenvolgend een onafhankelijke compilatie uitvoert van elke instructie of opdracht van een broncode op hoog niveau.

Een compiler van compilers is een vertaler die in staat is een formele beschrijving voor een programmeertaal te accepteren en onafhankelijk een compiler voor elke taal te genereren.

compiler en interpreter
compiler en interpreter

De debug-compiler stelt je in staat bepaalde soorten syntaxisfouten te vinden en op te lossen die zijn gemaakt bij het schrijven van de broncode

Een resident compiler neemt een vaste plaats in in RAM en is daarom herbruikbaar voor een breed scala aan taken.

De zelf samengestelde compiler is geschreven in dezelfde taal als de vertaling.

De universele compiler is gebaseerd op een formele beschrijving van de semantische en syntactische parameters van de invoertaal. De belangrijkste componenten van zo'n hulpprogramma zijn de kern, syntactische en semantische laders.

Compilerapparaat

Een compiler en een linker vormen het hart van elke compiler. Vaak wordt bij het compileren een externe linker gebruikt en voert de compiler zelf alleen de vertaalfunctie uit. Het komt ook voor dat de compiler is geïmplementeerd als een soort managerprogramma dat is gekoppeld aan de vertaler (of vertalers, als verschillende programmeertalen werden gebruikt bij het schrijven van de broncode) en de linker en de uitvoering start wanneer dat nodig is.

Programmeertalen en vertaalmethoden

taal compiler
taal compiler

Ondanks het feit dat een programma dat in elke programmeertaal is geschreven, zowel kan worden gecompileerd als geïnterpreteerd, hebben veel talen op hoog niveau aanleg voor een of andere vertaalmethode. Dus de C-taal was oorspronkelijk ontworpen voor compilatie, en Java - voor de interpretatie van het geschreven programma. Worden ontwikkeldC-compilers zijn vrij eenvoudig, dankzij het relatief lage niveau en een klein aantal structurele elementen.

Voor- en nadelen van compilers en interpreters. Toepassingen

Merk op dat gecompileerde applicaties sneller zijn dan geïnterpreteerde applicaties, maar tegelijkertijd hangt de machinecode die wordt verkregen als resultaat van compilatie af van het hardwareplatform. Een programma dat is geschreven en gecompileerd voor Windows, werkt dus niet, bijvoorbeeld in Linux. Daarom gebruiken ze in het geval van internettoepassingen, wanneer het niet van tevoren kan zeggen in welke omgeving ze zullen werken, interpretatie of bytecode (in dit geval wordt het bronprogramma omgezet in een tussenvorm die op verschillende hardware kan worden uitgevoerd). platforms).

Aanbevolen: