Wat is een compiler?
Een compiler is een speciaal type computerprogramma dat een voor mensen leesbaar tekstbestand vertaalt in een vorm die de computer gemakkelijker kan begrijpen. Op het meest basale niveau kan een computer slechts twee dingen begrijpen, een 1 en een 0. Op dit niveau zal een mens heel langzaam werken en de informatie in de lange reeks van 1'en en 0'en onbegrijpelijk vinden. Een compiler is een computerprogramma dat deze kloof overbrugt.
In het begin waren compilers zeer eenvoudige programma's die alleen symbolen konden vertalen in de bits , de enen en nullen, die de computer begreep. Programma's waren ook heel eenvoudig en bestonden uit een reeks stappen die oorspronkelijk handmatig werden vertaald in gegevens die de computer kon begrijpen. Dit was een zeer tijdrovende taak, dus delen van deze taak waren geautomatiseerd of geprogrammeerd en de eerste compiler werd geschreven. Dit programma heeft de stappen verzameld of gecompileerd die nodig zijn om het stapsgewijze programma uit te voeren.
Deze eenvoudige compilers werden gebruikt om een meer geavanceerde compiler te schrijven. Met de nieuwere versie kunnen meer regels aan het compilerprogramma worden toegevoegd om een meer natuurlijke taalstructuur mogelijk te maken waarmee de menselijke programmeur kan werken. Dit maakte het schrijven van programma's eenvoudiger en stelde meer mensen in staat om programma's te beginnen schrijven. Naarmate meer mensen programma's begonnen te schrijven, werden meer ideeën over het schrijven van programma's aangeboden en gebruikt om geavanceerdere compilers te maken. Op deze manier blijven compilerprogramma's evolueren, verbeteren en gemakkelijker te gebruiken.
Compilerprogramma's kunnen ook worden gespecialiseerd. Bepaalde taalstructuren zijn beter geschikt voor een bepaalde taak dan andere, dus werden specifieke compilers ontwikkeld voor specifieke taken of talen. Sommige compilers zijn meertraps of meerdere passages . Een eerste doorgang kan een heel natuurlijke taal bevatten en dichter bij een voor de computer begrijpelijke taal komen. Een tweede of zelfs een derde pass kan het naar de laatste fase brengen, het uitvoerbare bestand.
De tussenliggende uitvoer in een meertrapscompiler wordt meestal pseudocode genoemd, omdat deze niet door de computer kan worden gebruikt. Pseudo-code is erg gestructureerd, zoals een computerprogramma, niet vrij vloeiend en uitgebreid als een meer natuurlijke taal. De uiteindelijke uitvoer wordt het uitvoerbare bestand genoemd , omdat dit wordt uitgevoerd of uitgevoerd door de computer. Het opsplitsen van de taak op deze manier maakte het eenvoudiger om meer geavanceerde compilers te schrijven, omdat elke subtaak anders is. Het maakte het ook eenvoudiger voor de computer om aan te geven waar hij moeite had om te begrijpen wat hem werd gevraagd.
Fouten die de compiler beperken bij het begrijpen van een programma, worden syntaxisfouten genoemd. Fouten in de manier waarop het programma functioneert, worden logische fouten genoemd . Logische fouten zijn veel moeilijker te herkennen en te corrigeren. Syntaxisfouten lijken op spelfouten, terwijl logische fouten meer op grammaticale fouten lijken.
Cross-compilerprogramma's zijn ook ontwikkeld. Met een cross-compiler kan een set tekstbestanden met instructies die is geschreven voor een computer die is ontworpen door een specifieke fabrikant, worden samengesteld en worden uitgevoerd voor een andere computer door een andere fabrikant. Een programma dat bijvoorbeeld is geschreven om op een Intel-computer te worden uitgevoerd, kan soms worden gecompileerd om een op Motorola ontwikkelde computer uit te voeren. Dit werkt vaak niet zo goed. Op het niveau waarop computerprogramma's werken, kan de computerhardware er heel anders uitzien, zelfs als ze op u lijken.
Cross-compilatie is anders dan de ene computer een andere computer laten emuleren. Als een computer een andere computer emuleert, doet hij zich voor als die andere computer. Emulatie is vaak langzamer dan cross-compilatie, omdat twee programma's tegelijkertijd worden uitgevoerd, het programma dat zich voordoet als de andere computer en het programma dat wordt uitgevoerd. Om cross-compilatie te laten werken, hebt u echter zowel de oorspronkelijke tekst in de natuurlijke taal die het programma beschrijft als een computer die voldoende vergelijkbaar is met de originele computer waarop het programma kan werken om op een andere computer te worden uitgevoerd. Dit is niet altijd mogelijk, dus beide technieken zijn in gebruik.