Differenza tra assemblatore e interprete

Anonim

Assembler vs Interpreter

In generale, il compilatore è un programma per computer che legge un programma scritto in una lingua chiamata la lingua di origine e la traduce in un'altra lingua, che viene definita la lingua di destinazione. Tradizionalmente, la lingua di origine è un linguaggio di alto livello come C ++ e la lingua di destinazione è un linguaggio a basso livello come la lingua dell'Assemblea. Tuttavia, ci sono compilatori che possono convertire un programma di origine scritto in lingua 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 certo linguaggio di programmazione. L'interpretatore può eseguire direttamente il codice sorgente ad alto livello o tradurlo nel codice intermedio e quindi interpretarlo o eseguire il codice precompilato.

Che cos'è un Assembler?

Assembler è un software o uno strumento che traduce la lingua dell'Assemblea al codice macchina. Quindi, un assembler è un tipo di compilatore e il codice sorgente è scritto in lingua Assembly. L'assemblaggio è un linguaggio leggibile dall'uomo, ma in genere ha un rapporto uno a uno con il codice macchina corrispondente. Pertanto, un assembler è detto di eseguire una traduzione isomorfa (una a una mappatura). Gli assemblatori avanzati forniscono funzioni aggiuntive che supportano i processi di sviluppo e di debug del programma. Ad esempio, il tipo di assemblatori denominati macro assembler fornisce una struttura macro.

Che cos'è un interprete?

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

Qual è la differenza tra un Assembler e un Interprete?

Un assembler può essere considerato un tipo speciale di compilatore che traduce solo la lingua dell'Assemblea al codice macchina. Gli interpreti sono strumenti che eseguono istruzioni scritte in qualche lingua. I sistemi di interpreti possono includere un compilatore per pre-compilare il codice prima dell'interpretazione, ma un interprete non può essere chiamato un tipo speciale di un compilatore. Gli assemblatori producono un codice oggetto, che potrebbe essere necessario collegare i programmi di linker per eseguire su una macchina, ma la maggior parte degli interpreti può completare l'esecuzione di un programma da soli.Un assembler prenderà tipicamente una traduzione a uno, ma questo non è vero per la maggior parte degli interpreti. Poiché la lingua dell'Assemble ha un mapping con codice macchina, un assembler può essere utilizzato per produrre codice che funziona in modo molto efficiente per le occasioni in cui le prestazioni sono molto importanti (per esempio i motori grafici, i sistemi embedded con risorse hardware limitate rispetto ad un personal computer come microonde, lavatrici, ecc.). D'altra parte, gli interpreti vengono utilizzati quando avete bisogno di un'elevata portabilità. Ad esempio, lo stesso bytecode Java può essere eseguito su diverse piattaforme utilizzando l'interprete appropriato (JVM).