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: C# для начинающих: Сборка, EXE и DLL 2024, Novembre
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, il linguaggio di origine è un linguaggio di alto livello come C++ e il linguaggio di destinazione è 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. D' altra parte, gli interpreti sono strumenti che eseguono istruzioni scritte in alcuni linguaggi di programmazione. L'interprete può eseguire direttamente codice sorgente di alto livello o tradurlo in codice intermedio e quindi interpretarlo o eseguire codice precompilato.

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.

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 sorgente in un codice intermedio ed eseguirlo direttamente o eseguire codice precompilato prodotto da un compilatore (alcuni sistemi di interpreti 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 prima compilano il sorgente in un codice intermedio chiamato bytecode e poi lo interpretano.

Qual è la differenza tra un assemblatore e un interprete?

Un assembler 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 alcune lingue. 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 di collegamento per essere eseguito su una macchina, ma la maggior parte degli interpreti può completare l'esecuzione di un programma da sola. 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 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.). 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).

Consigliato: