Assemblatore e compilatore
La difficoltà di gestire programmi, dove per i non esperti risulta già difficile individuare le singole istruzioni, portò allo sviluppo di linguaggi di tipo simbolico, dove le istruzioni assembly sono ben identificate e caratterizzate da formati mnemonici più espliciti rispetto allo scopo della loro esecuzione.
Formato in linguaggio assembly
Il programma dell’esempio precedente assume in linguaggio assembly il seguente formato:
L’immagine precedente è stata ottenuta utilizzando uno strumento «disassemblatore» che ricostruisce i codici simbolici mnemonici a partire dai codici binari delle istruzioni che costituiscono il programma. Il disassemblatore non distingue i dati dalle istruzioni e opera anche sui dati, visualizzandoli come se fossero istruzioni:
Uno speciale programma denominato assemblatore veniva impiegato per tradurre le istruzioni dal formato simbolico al formato numerico della macchina.
Evoluzione dei linguaggi di programmazione
L’idea alla base dell’evoluzione dei linguaggi di programmazione è stata quella di dotarli di istruzioni più «potenti» rispetto a quelle della macchina esecutrice – il computer – e allo stesso tempo più «semplici» da usare per il programmatore. A supporto di questa semplificazione sono stati sviluppati traduttori sempre più sofisticati che hanno notevolmente aumentato il livello di astrazione e di indipendenza della pratica della programmazione dai dettagli della piattaforma di esecuzione: i compilatori.
Dal punto di vista teorico è stato dimostrato che – per quanto riguarda la capacità computazionale, cioè la capacità di implementare algoritmi – tutti i linguaggi non banali sono di fatto equivalenti: di conseguenza un programma codificato in un certo linguaggio di programmazione può essere tradotto in un qualsiasi altro linguaggio, a meno che esso non utilizzi caratteristiche peculiari che per alcuni linguaggi sono spesso strettamente dipendenti dall’hardware del computer (come, per esempio, la gestione dell’interfaccia grafica).
Formato in linguaggio C++
Un programma con lo stesso scopo dei programmi degli esempi precedenti codificato nel linguaggio C++ avrebbe il seguente formato:
In ogni caso l’effetto è sempre quello di visualizzare il solito messaggio.
-
Appunti di Informatica - Uso del compilatore Word / Writer
-
Programmazione - programmazione Java 2
-
Informatica I - estendere una classe in java
-
Informatica - Domande