Google Play badge

compilers


COMPILEERDERS

Een compiler verwijst naar een computerprogramma dat wordt gebruikt om een ​​computercode die is geschreven in de ene programmeertaal (de brontaal genoemd) te vertalen naar een andere programmeertaal (de doeltaal genoemd). De term compiler wordt voornamelijk toegepast voor programma's die broncodes vertalen van een programmeertaal op hoog niveau naar een programmeertaal op een lager niveau. Bijvoorbeeld machinecode, objectcode of assembleertaal om een ​​uitvoerbaar programma te maken.

Het is belangrijk op te merken dat er veel verschillende soorten compilers zijn. Als het gecompileerde programma kan worden uitgevoerd op een computer waarvan het besturingssysteem of de CPU verschilt van die waarop de compiler draait, wordt de compiler een cross-compiler genoemd. Een bootstrap-compiler daarentegen is geschreven in de taal die hij wil compileren. Een decompiler is een programma dat wordt gebruikt om een ​​taal op een laag niveau naar een taal op een hoger niveau te vertalen. Een programma dat wordt gebruikt om tussen talen op hoog niveau te vertalen, wordt een source-to-source-compiler genoemd. Het kan ook een transpiler worden genoemd. Een programma dat verantwoordelijk is voor het vertalen van de vorm van uitdrukkingen zonder taalverandering, staat bekend als een taalherschrijver. De term compiler-compiler verwijst naar die tools die worden gebruikt om parsers te maken die verantwoordelijk zijn voor het uitvoeren van de syntaxisanalyse.

Enkele van de bewerkingen die door een compiler worden uitgevoerd, zijn onder meer: ​​voorverwerking, parsing, (syntaxisgerichte vertaling), semantische analyse, lexicale analyse, codegeneratie, code-optimalisatie en conversie van invoerprogramma's naar een tussenrepresentatie. Compilers zijn verantwoordelijk voor het implementeren van deze bewerkingen in verschillende fasen die correcte transformaties en een efficiënt ontwerp van broninvoer naar doeluitvoer bevorderen. Programmafouten die worden veroorzaakt door onjuist gedrag van de compiler kunnen zeer moeilijk op te sporen en te omzeilen zijn. Compiler-implementeerders investeren daarom aanzienlijke inspanningen om de correctheid van de compiler te garanderen.

Het is belangrijk op te merken dat compilers niet de enige vertalers zijn die worden gebruikt om bronprogramma's te transformeren. Een computersoftware die verantwoordelijk is voor het transformeren en vervolgens uitvoeren van de aangegeven bewerkingen wordt een tolk genoemd. Het vertaalproces beïnvloedt het ontwerp van de computertaal, wat leidt tot een voorkeur voor interpretatie of compilatie. In de praktijk kan de implementatie van een tolk voor compilers en gecompileerde talen worden geïmplementeerd voor geïnterpreteerde talen.

Houd er rekening mee dat bij gebruik van een compiler een proces in twee stappen wordt gebruikt om een ​​programma uit te voeren:

DE COMPILATIETOOLKETEN

Voor grote programma's maakt de compiler deel uit van een uit meerdere stappen bestaande gereedschapsketen,

(preprocessor)- (compiler)- (assembler)- (linker)- (lader).

STRUCTUUR VAN EEN COMPILER

Moderne compilers bestaan ​​uit twee hoofdonderdelen. Elk van deze onderdelen is vaak onderverdeeld. Deze twee hoofdonderdelen zijn de voorkant en de achterkant.

De front-end is verantwoordelijk voor de analyse van het bronprogramma, construeert een tussenrepresentatie van het programma en bepaalt de samenstellende delen ervan. Over het algemeen is de front-end onafhankelijk van de doeltaal.

De back-end daarentegen is verantwoordelijk voor het synthetiseren van het doelprogramma uit de tussenrepresentatie die door de front-end wordt geproduceerd. Over het algemeen wordt gezegd dat de back-end onafhankelijk is van de brontaal.

Download Primer to continue