Differenza tra Assembler e Compiler

Differenza tra Assembler e Compiler
Differenza tra Assembler e Compiler

Video: Differenza tra Assembler e Compiler

Video: Differenza tra Assembler e Compiler
Video: Lecciones de francés (2): oi, ou, au, eau, eu, œ, œu 2024, Novembre
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, il linguaggio di origine era un linguaggio di alto livello come C++ e il linguaggio 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?

Compiler è 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 partenza è 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 è composto da diversi componenti principali. Il primo componente è lo scanner (noto anche come analizzatore lessicale). 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 prossimo componente sono le routine semantiche che interpretano la semantica della struttura sintattica. Seguono le ottimizzazioni del codice e la generazione finale del codice.

Cos'è un Assembler?

Assembler è un software o uno strumento che traduce il linguaggio Assembly in codice macchina. Quindi, un assembler è 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 del programma e i processi di debug. Ad esempio, il tipo di assemblatori chiamati assemblatori di macro fornisce una funzione macro.

Qual è la differenza tra un Assembler e un Compiler?

Compiler è un programma per computer che legge un programma scritto in una lingua e lo traduce in un' altra lingua, mentre un assembler 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 di collegamento 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 funziona in modo molto efficiente per le occasioni in cui le prestazioni sono molto importanti (ad es. motori grafici, sistemi embedded con risorse hardware limitate rispetto a un personal computer come forni a microonde, lavatrici, ecc.).

Consigliato: