Assembler vs Interpreter
In generale, il compilatore è un programma per computer che legge un programma scritto in una lingua, che è chiamata la lingua di partenza e la traduce in un'altra lingua, che è chiamata la lingua di destinazione. Tradizionalmente, la lingua di partenza è un linguaggio di alto livello come il C ++ e la lingua di destinazione è un linguaggio di basso livello come il linguaggio Assembly. Tuttavia, ci sono 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 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. 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 una traduzione isomorfa (mappatura uno a uno). Assemblatori avanzati forniscono funzionalità aggiuntive che supportano i processi di sviluppo e debug del programma. Ad esempio, il tipo di assemblatori chiamati macro assemblatori 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 la 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à). 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 prima compilano il codice sorgente con un codice intermedio chiamato bytecode e quindi lo interpretano.
Qual è la differenza tra un Assemblatore e un Interprete?
Un assemblatore può essere considerato un tipo speciale di compilatore, che converte solo la lingua Assembly in codice macchina. Gli interpreti sono strumenti che eseguono istruzioni scritte in una lingua. I sistemi interpreti possono includere un compilatore per precompilare il codice prima dell'interpretazione, ma un interprete non può essere chiamato un tipo speciale di compilatore. Gli assemblatori producono un codice oggetto, che potrebbe dover essere collegato utilizzando i programmi linker per essere eseguito su una macchina, ma la maggior parte degli interpreti può completare da sola l'esecuzione di un programma. Un assemblatore tipicamente esegue una traduzione uno a uno, ma questo non è vero per la maggior parte degli interpreti. Poiché il linguaggio Assembly ha un mapping uno a uno con il codice macchina, un assemblatore può essere utilizzato per produrre codice che viene eseguito in modo molto efficiente in 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).