* Compilatori: Questi traducono il codice sorgente di alto livello (scritto in linguaggi come C, C ++, Java, Python, ecc.) In linguaggio assembly o direttamente nel codice macchina (codice oggetto). Il processo prevede in genere diverse fasi, tra cui analisi lessicale, analisi, analisi semantica, ottimizzazione e generazione di codice. Il codice oggetto risultante è specifico per l'architettura target (ad es. X86-64, ARM).
* Assemblatori: Questi traducono il linguaggio dell'assembly (una rappresentazione di basso livello e leggibile dall'uomo del codice della macchina) nel codice oggetto. Il linguaggio dell'assemblaggio utilizza mnemonics per rappresentare le istruzioni della macchina, rendendo più facile per i programmatori con il codice della macchina grezza.
Mentre i compilatori generano spesso un linguaggio di assemblaggio come fase intermedia, alla fine producono codice oggetto. Gli assemblatori lavorano direttamente con il linguaggio dell'assembly per produrre codice oggetto. Pertanto, entrambi sono cruciali nel processo di trasformazione del codice sorgente in programmi eseguibili. Un linker combina quindi questi file di oggetti (e spesso librerie pre-accompagnate) per creare il file eseguibile finale.
software © www.354353.com