In de laatste fase, het creëren van een bepaaldeprogramma, moet elke programmeur de diensten van een compiler gebruiken. In de technische documentatie wordt dit programma een nogal bescheiden definitie gegeven als een hulpprogramma dat compilaties uitvoert. Compilatie is het proces waarbij een programma dat is geschreven in een voor mensen leesbare taal (taal op hoog niveau) wordt omgezet in machineleesbare instructies (taal op laag niveau). Als resultaat krijgen we een programma dat dicht bij machinecode ligt. Het lijkt misschien op een objectmodule, absolute code. Soms lijkt zo'n programma op assembler.
Compilatie is dus wanneer de invoerinformatie (broncode) die een algoritmebeschrijving of een programma dat in een probleemgeoriënteerde taal is geschreven, vertegenwoordigt, wordt herschreven in een equivalente lijst van opdrachten die worden weergegeven in objectcode (machinegeoriënteerde taal).
Om de definitie nog verder te vereenvoudigen, is compileren het vertalen van een machineprogramma van een probleemgeoriënteerde taal naar een machinegeoriënteerde taal.
Ondanks de transparantie en eenvoud van definitie,compilatie is een nogal veelzijdig proces. Er zijn verschillende soorten van. Batchcompilatie wordt gedaan op meerdere bronmodules in één taakitem. Regel-voor-regel compilatie is hetzelfde als interpretatie (stap-voor-stap onafhankelijke compilatie van elke volgende verklaring). Er is ook een voorwaardelijke compilatie. In dit geval hangt de vertaalde tekst af van de voorwaarden die in het bronprogramma zijn gespecificeerd door compilerrichtlijnen.
Door de waarde van een bepaalde constante te wijzigen, kunt u de aan- of uit-vertaling van een deel van de programmatekst aanpassen.
Voor het gemak van programmeurs worden bij het oplossen van verschillende problemen de handigste en meest aangepaste compilers gebruikt. Als we ze classificeren, kunnen we verschillende soorten van dergelijke hulpprogramma's onderscheiden.
De vectoriserende compiler vertaalt de broncode in machinecomputercode en past zich aan aan vectorprocessors.
De flexibele compiler is ontwikkeld op basis van:modulair principe. Het wordt beheerd door tabellen. Het is geprogrammeerd in een taal op hoog niveau. Het kan ook worden geïmplementeerd met behulp van een compiler-compiler.
De incrementele compiler vertaalt programmafragmenten en toevoegingen daaraan opnieuw, terwijl het opnieuw compileren van het hele programma is uitgesloten.
Een interpretatieve of stapsgewijze compiler gebruikt het principe van sequentiële uitvoering van onafhankelijke compilatie voor elke afzonderlijke instructie of opdracht van het bronprogramma.
Een compiler-compiler is een vertaler die een formele beschrijving voor een programmeertaal gebruikt. Het is in staat om onafhankelijk een compiler voor een specifieke taal te genereren.
De debug-compiler kan bepaalde typen syntaxisfouten zelf oplossen.
De resident compiler heeft een permanente geheugenlocatie en is beschikbaar voor hergebruik door een breed scala aan taken.
Er zijn zelfcompilerende compilers. Ze zijn geschreven in dezelfde taal van waaruit de uitzending plaatsvindt.
Een universele compiler is gebaseerd op een formele beschrijving van de semantiek en syntaxis van de invoertaal. Het bestaat uit een kern, syntactische en semantische laders.
De meest voorkomende taken, waarcompilers vinden hun weg naar het compileren van de kernel voor het Linux-platform. Met deze bewerking kunt u een breed scala aan problemen oplossen die verband houden met de coördinatie van apparatuur en het instellen van de meest acceptabele versie van het platform.
Java-compilatie wordt geïmplementeerd met behulp vancompilers die op een groot aantal verschillende platforms worden uitgevoerd. Hierdoor kan de broncode opnieuw worden gecompileerd voor de behoeften van besturingssystemen van verschillende fabrikanten.