De programma's die broncode naar objectcode vertalen, worden compilers genoemd en assembleurs .
* Compilers: Deze vertalen broncode op hoog niveau (geschreven in talen als C, C++, Java, Python, enz.) naar assembleertaal of rechtstreeks naar machinecode (objectcode). Het proces omvat doorgaans verschillende fasen, waaronder lexicale analyse, parseren, semantische analyse, optimalisatie en het genereren van code. De resulterende objectcode is specifiek voor de doelarchitectuur (bijvoorbeeld x86-64, ARM).
* Assembleurs: Deze vertalen assembleertaal (een laagniveau, voor mensen leesbare weergave van machinecode) in objectcode. Assemblagetaal maakt gebruik van geheugensteuntjes om machine-instructies weer te geven, waardoor het voor programmeurs gemakkelijker wordt om mee te werken dan met onbewerkte machinecode.
Terwijl compilers vaak assembleertaal als tussenstap genereren, produceren ze uiteindelijk objectcode. Assemblers werken rechtstreeks met de assembleertaal om objectcode te produceren. Daarom zijn beide cruciaal in het proces van het transformeren van broncode in uitvoerbare programma's. Een linker combineert vervolgens deze objectbestanden (en vaak vooraf gecompileerde bibliotheken) om het uiteindelijke uitvoerbare bestand te creëren. |