Differenza Tra Assemblatore E Interprete

Differenza Tra Assemblatore E Interprete
Differenza Tra Assemblatore E Interprete

Video: Differenza Tra Assemblatore E Interprete

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

Assemblatore vs interprete

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 è una lingua di alto livello come C ++ e la lingua di destinazione è una lingua 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. D'altra parte, gli interpreti sono strumenti che eseguono istruzioni scritte in un linguaggio di programmazione. L'interprete può eseguire direttamente il codice sorgente di alto livello o tradurlo in codice intermedio e quindi interpretarlo o eseguire codice precompilato.

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.

Cos'è un interprete?

Un interprete è un programma per computer o uno strumento che esegue istruzioni di programmazione. Un interprete può eseguire direttamente il codice sorgente o convertire il codice sorgente in un codice intermedio ed eseguirlo direttamente o eseguire codice precompilato prodotto da un compilatore (alcuni sistemi interprete includono un compilatore per questa attività). Linguaggi come Perl, Python, MATLAB e Ruby sono esempi di linguaggi di programmazione che utilizzano un codice intermedio. UCSD Pascal interpreta un codice precompilato. Linguaggi come Java, BASIC e Samlltalk compilano prima il sorgente in un codice intermedio chiamato bytecode e poi lo interpretano.

Qual è la differenza tra un assemblatore e un interprete?

Un assemblatore può essere considerato un tipo speciale di compilatore, che traduce solo il linguaggio Assembly in codice macchina. Gli interpreti sono strumenti che eseguono istruzioni scritte in una lingua. I sistemi di interprete possono includere un compilatore per precompilare il codice prima dell'interpretazione, ma un interprete non può essere definito un tipo speciale di compilatore. Gli assemblatori producono un codice oggetto, che potrebbe dover essere collegato utilizzando programmi linker per poter essere eseguito su una macchina, ma la maggior parte degli interpreti può completare l'esecuzione di un programma da soli. Un assemblatore in genere esegue una traduzione uno a uno, ma questo non è vero per la maggior parte degli interpreti. 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 embedded con risorse hardware limitate rispetto a un personal computer come microonde, lavatrici, ecc.). D'altra parte, gli interpreti vengono utilizzati quando è necessaria un'elevata portabilità. Ad esempio, lo stesso bytecode Java può essere eseguito su piattaforme diverse utilizzando l'interprete appropriato (JVM).

Raccomandato: