Concept in definitie ABC
Diversen / / July 04, 2021
Door Guillem Alsina González, in sept. 2017
Hoe kunnen we opschieten met iemand met wie we geen taal gemeen hebben? Via een vertaler. Deze vertaalfunctie is wat een compiler veranderen in code uitvoerbare broncode geschreven door een programmeur.
Compilatie is het proces waarbij een programma dat in een taal op hoog niveau is geschreven, wordt vertaald naar de machinecode die door een bepaalde computerarchitectuur wordt gebruikt voor de uitvoering ervan direct.
Daarom, en volgens de uitleg die we zojuist hebben voorgesteld, vereist dit systeem de keuze van a architectuur bestemming, die in elk geval anders kan zijn en ons zal dwingen om afzonderlijk te compileren voor elk van de verschillende architecturen waarin we ons programma willen laten draaien.
Zo kunnen we bijvoorbeeld verder gaan met een bepaald programma voor de 32-bits x86-architectuur, de 64-bits x86, de PowerPC of de ARM maakt ook onderscheid tussen 32 en 64 bits, afhankelijk van het type apparaat waarin we willen voer het uit.
Daarnaast moeten we ook rekening houden met de verschillende besturingssystemen, ook al werken we voor hetzelfde platform hardware, aangezien elk een andere manier heeft om met de fysieke machine om te gaan
Neem het x86 64-bits platform als voorbeeld. We willen misschien compileren voor ramen, GNU / Linux of macOS, of voor elk van hen, wat drie afzonderlijke compilatieprocessen impliceert.
Soms dwingt dit ons om de broncode enigszins aan te passen, waarbij we vaak drie afzonderlijke versies behouden (of meer, afhankelijk van) het geval) zodat ze correct kunnen omgaan met de eigenaardigheden en verschillen van het bestemmingsplatform.
Het compilatieproces volgt een reeks stappen, zoals het detecteren van syntactische fouten in de broncode, en vervolgens a vooraf verwerkt om de bronnen te kennen die het programma nodig heeft, en tot slot de link met de bibliotheken en bronnen die nodig zijn voor zijn executie.
Op deze manier wordt een het dossier uitvoerbaar met alles middelen die nodig zijn voor de uitvoering ervan, en de instructies die nodig zijn voor toegang tot externe bronnen, zoals gedeelde codebibliotheken (gedeeld).
Het compilatieproces wordt gedaan met een specifieke tool of tools (compiler), hoewel het gebruikelijk is om dit in ontwikkelomgevingen (IDE) te integreren, waardoor het gebruik ervan.
Elke taal van programmeren Het heeft zijn eigen compiler, hoewel de compiler die overeenkomt met een taal en omgeving lange tijd uitvoerbare bestanden voor verschillende platforms heeft kunnen genereren. software anders.
Is er een alternatieve optie voor het bouwproces? Ja, en het zijn geïnterpreteerde talen.
Geïnterpreteerde talen zijn talen die tijdens runtime worden vertaald en niet worden gecompileerd.
Daarom is hun broncode altijd beschikbaar, en wat ze nodig hebben is dat in de besturingssysteem waarop ze worden uitgevoerd, is er een tolk.
Door het compilatieproces te vermijden, als de tolk beschikbaar is voor meerdere platforms, het zal mogelijk zijn om het programma rechtstreeks op elk van hen uit te voeren, meestal zonder wijzigingen.
andere focus alternatief, halverwege tussen gecompileerde en geïnterpreteerde talen, zijn die waarvoor een virtuele machine nodig is om bijvoorbeeld Java uit te voeren.
Programmeertalen die bovenop een virtualisatielaag (virtuele machine) draaien, vereisen een tussenproces dat vergelijkbaar is met dat van compilatie, maar dat resulteert in een code die niet direct uitvoerbaar is, hoewel meer geoptimaliseerd dan die uitgevoerd door een taal geïnterpreteerd.
In deze gevallen vereist het wel een proces dat qua vorm vergelijkbaar is met dat van compilatie, maar dat geeft een ander resultaat en dat vereist in ieder geval nog steeds de installatie van een looptijd in het besturingssysteem waarin we ons programma willen uitvoeren.
Foto's: Fotolia - Alexander Pokusay / Onot
Onderwerpen in compilatie