Tagoror  

Encyclopedie




Compiler

Een compiler (letterlijk samensteller, opbouwer) is een computerprogramma dat een invoer, opgesteld in een bepaalde formele taal, vertaalt in een bijbehorende uitvoer opgesteld in een andere formele taal. Dit aangenomen dat de invoer een correcte (dat wil zeggen, welgevormde) invoer is in de invoer-taal van de compiler (zo niet, dan kan er geen vertaling uitgevoerd worden en stopt de compiler). Een compiler is feitelijk de implementatie op een computer van een vertaalfunctie in wiskundige zin; een functie die woorden uit de formele invoertaal afbeeldt op woorden uit de formele uitvoertaal.

Het meest veelvuldige gebruikt van compilers is binnen het programmeren; bij dit gebruik wordt een tekst in de vorm van broncode in een bepaalde programmeertaal omgezet, meestal naar een vorm waarin het direct door een computer kan worden uitgevoerd, maar soms ook naar een vorm die door een ander programma, een interpreter of run-time module, geinterpreteerd dient te worden. Een compiler wordt vanaf 1985 vaak gebruikt als onderdeel van een software-ontwikkelomgeving, zodat het programma direct kan worden getest. Zonder software-ontwikkelomgeving vergt het compileren een aparte handeling van de programmeur.

Een programmeur schrijft de broncode van het programma, bijvoorbeeld in Pascal of C in een teksteditor (een tekstbewerkingprogramma, meestal speciaal geschikt voor de te gebruiken programmeertaal) en slaat deze op in een bestand. Wanneer de programmeur de compiler gebruikt zal deze de broncode omzetten naar een uitvoerbaar bestand. Dit compileren gebeurt in verschillende fases:

  • analysefase om te zien of er geen taalfouten (syntax-fouten) zijn gemaakt.
  • één of meerdere omzettingsfases
  • schrijven van het objectbestand
De resulterende objectbestanden (verwar object hier niet met object-orientatie) moeten doorgaans dan nog gelinkt worden (samengevoegd met bijv opstartcode), waarna het klaar is voor uitvoering; de zg. executable is klaar. In het geval van de variant die nog een interpreter vereist wordt de link fase gewoonlijk overgeslagen. Het compilatie process is hierdoor meestal wat sneller, maar de uitvoering trager. Een voordeel van interpreter gebaseerde compilatie kan wel zijn dat de gegenereerde object code portable is naar andere systemen. De interpreter zelf is dan niet portable en handelt de platform specifieke zaken af.

Een van de eerste dingen die men met een nieuw aangeschafte of (gratis) gedownloade compiler pleegt te doen is het programma HelloWorld compileren en linken. Bijvoorbeeld in C onder Windows:

HelloWorld.c  --compileren en linken-->  HelloWorld.exe tekstbestand  binair bestand

Of in Java:
HelloWorld.java  --------------------->  HelloWorld.class tekstbestand  binair bestand

Zo'n testprogrammaatje doet meestal niet meer dan Hallo op het beeldscherm toveren.

GNU brengt een collectie van compilers uit, de GNU Compiler Collection of kortweg GCC. GCC is vrije software.
GCC kan broncode in de talen C, C++, Objective-C, Fortran, Java en Ada compileren. Lees en download van: http://gcc.gnu.org.




Tagoror Networks: Spain  |  Philippines  |  Mexico

Los documentos de esta enciclopedia on line se publican bajo la Licencia de Documentación Libre GNU

De tekst is beschikbaar onder de licentie Creative Commons Naamsvermelding/Gelijk delen, er kunnen aanvullende voorwaarden van toepassing zijn.