Differenza Tra Assemblatore E Compilatore

Differenza Tra Assemblatore E Compilatore
Differenza Tra Assemblatore E Compilatore

Video: Differenza Tra Assemblatore E Compilatore

Video: Differenza Tra Assemblatore E Compilatore
Video: Differenza tra linguaggi compilati e interpretati - Corso di programmazione base | Renzo Cappelli 2024, Potrebbe
Anonim

Assembler vs compilatore

In generale, il compilatore è un programma per computer che legge un programma scritto in una lingua, chiamata lingua di origine, e lo traduce in un'altra lingua, chiamata lingua di destinazione. Tradizionalmente, la lingua di origine era un linguaggio di alto livello come il C ++ e la lingua di destinazione era un linguaggio di basso livello come il linguaggio Assembly. Tuttavia, esistono compilatori che possono convertire un programma sorgente scritto in linguaggio Assembly e convertirlo in codice macchina o codice oggetto. Gli assemblatori sono tali strumenti. Quindi, sia gli assemblatori che i compilatori alla fine producono codice che può essere eseguito direttamente su una macchina.

Cos'è un compilatore?

Il compilatore è un programma per computer che legge un programma scritto in una lingua, chiamata lingua di origine, e lo traduce in un'altra lingua, chiamata lingua di destinazione. Molto spesso, la lingua di origine è una lingua di alto livello e la lingua di destinazione è una lingua di basso livello. Quindi, in generale, i compilatori possono essere visti come traduttori che traducono da una lingua all'altra. Inoltre, i compilatori eseguono alcune ottimizzazioni al codice. Un tipico compilatore è costituito da diversi componenti principali. Il primo componente è lo scanner (noto anche come analizzatore lessicale). Lo scanner legge il programma e lo converte in una stringa di token. Il secondo componente è il parser. Converte la stringa di token in un albero di analisi (o un albero di sintassi astratto), che cattura la struttura sintattica del programma. Il componente successivo sono le routine semantiche che interpretano la semantica della struttura sintattica. Le ottimizzazioni del codice e la generazione finale del codice seguono questo.

Cos'è un assemblatore?

Assembler è un software o uno strumento che traduce il linguaggio Assembly in codice macchina. Quindi, un assemblatore è un tipo di compilatore e il codice sorgente è scritto in linguaggio Assembly. L'assembly è un linguaggio leggibile dall'uomo ma in genere ha una relazione uno a uno con il codice macchina corrispondente. Pertanto si dice che un assemblatore esegua la traduzione isomorfa (mappatura uno a uno). Gli assemblatori avanzati forniscono funzionalità aggiuntive che supportano lo sviluppo di programmi e i processi di debug. Ad esempio, il tipo di assemblatori chiamati macro assemblatori fornisce una funzionalità di macro.

Qual è la differenza tra un assemblatore e un compilatore?

Il compilatore è un programma per computer che legge un programma scritto in una lingua e lo traduce in un'altra lingua, mentre un assemblatore può essere considerato un tipo speciale di compilatore che traduce solo il linguaggio Assembly in codice macchina. I compilatori di solito producono il codice eseguibile della macchina direttamente da un linguaggio di alto livello, ma gli assemblatori producono un codice oggetto che potrebbe dover essere collegato utilizzando programmi linker per essere eseguito su una macchina. Poiché il linguaggio Assembly ha una mappatura uno a uno con il codice macchina, un assemblatore può essere utilizzato per produrre codice che viene eseguito in modo molto efficiente per le occasioni in cui le prestazioni sono molto importanti (ad esempio motori grafici, sistemi incorporati con risorse hardware limitate rispetto a un personal computer come microonde, lavatrici, ecc.).

Raccomandato: