EVOLUTION OF A COMPUTER
USER.
Grazie.
USER.
Interessante vedere con esempi l’evoluzione dei linguaggi di programmazione senza entrare troppo nei dettagli soprattutto per me non programmatore .
Per approfondir la storia dei linguaggi di programmazione vi invito a visitare questo sito :
Tutti questi linguaggi potremmo dividerli in 2 grosse categorie:
- linguaggi di programmazione a basso livello
- linguaggi di programmazione ad alto livello
Linguaggi di programmazione a basso livello.
Un’esempio di linguaggio a basso livello, basta pensare i primi programmatori, che per programmare utilizzavano il linguaggio macchina, dove costruivano istruzioni con lunghe sequenze di 0 e 1.
Ma questo tipo di linguaggio comportava molti problemi,ad esempio l’identificazione di un errore era davvero complessa.
Un passo avanti è stato fatto con linguaggio Assembler, dove le istruzioni non erano + dei 0 e 1, ma si utilizza un nome simbolico per ogni tipo di istruzione, in questo modo migliorano moltissimo la leggibilità del codice e la sua comprensione.
I programmi scritti in assembler non potevano però essere eseguiti dalla macchina, ed è qua entra in gioco un’ulteriore programma,chiamato assemblatore, che aveva l’unica funzione ditradurre le istruzioni da Assembler a linguaggio macchina(0-1).
Ma questo tipo di linguaggio comportava molti problemi,ad esempio l’identificazione di un errore era davvero complessa.
Un passo avanti è stato fatto con linguaggio Assembler, dove le istruzioni non erano + dei 0 e 1, ma si utilizza un nome simbolico per ogni tipo di istruzione, in questo modo migliorano moltissimo la leggibilità del codice e la sua comprensione.
I programmi scritti in assembler non potevano però essere eseguiti dalla macchina, ed è qua entra in gioco un’ulteriore programma,chiamato assemblatore, che aveva l’unica funzione ditradurre le istruzioni da Assembler a linguaggio macchina(0-1).
Linguaggi di programmazione ad alto livello.
In questo tipo di linguaggi le istruzioni sono rappresentate da parole inglesi, in modo da rendere ancor più comprensibile il codice e il suo funzionamento rispetto al linguaggio Assembler.
Ogni istruzione di un linguaggio ad alto livello, corrisponde a 1 o più istruzioni a basso livello.
Con l’introduzione di parole è facile intuire che la velocità di apprendimento di questi linguaggi e’ altissima, e lo sviluppo di nuovi programmi sia molto più rapido rispetto a prima.
Come l’assemblatore per il linguaggio Assembler, anche qui ci sono dei programmi che si occuperanno della traduzione delle istruzioni in linguaggio macchina: interprete o compilatore, a seconda dei casi.
Ogni istruzione di un linguaggio ad alto livello, corrisponde a 1 o più istruzioni a basso livello.
Con l’introduzione di parole è facile intuire che la velocità di apprendimento di questi linguaggi e’ altissima, e lo sviluppo di nuovi programmi sia molto più rapido rispetto a prima.
Come l’assemblatore per il linguaggio Assembler, anche qui ci sono dei programmi che si occuperanno della traduzione delle istruzioni in linguaggio macchina: interprete o compilatore, a seconda dei casi.
Interprete
Ha lo scopo di permettere l’esecuzione di un programma ad alto livello, senza il bisogno di alcuna compilazione.
L’interprete compie l’operazione di esecuzione e traduzione simultaneamente, controlla un’istruzione per volta, la traduce in codice macchina e successivamente la manda in esecuzione.
La traduzione delle istruzioni avviene MENTRE il programma e’ in esecuzione, vengono effettuate traduzioni “al volo”.
L’interprete compie l’operazione di esecuzione e traduzione simultaneamente, controlla un’istruzione per volta, la traduce in codice macchina e successivamente la manda in esecuzione.
La traduzione delle istruzioni avviene MENTRE il programma e’ in esecuzione, vengono effettuate traduzioni “al volo”.
Pro:
- Alta portabilità
Contro:
- Il cliente necessita di possedere i file sorgenti prodotti dal programmatore, di conseguenza potrebbe modificare il programma.
- Richiede più memoria per funzionare (per la traduzione istruzioni)
- Meno veloce rispetto a un programma compilato (per la traduzione istruzioni)
Compilatore
Anzichè tradurre ogni volta le istruzioni , viene fatta una traduzione unica del codice sorgente creando un file OBJ(programma in linguaggio macchina), successivamente tramite la procedura di linking, viene generato l’eseguibile del programma.
Pro:
- Il cliente non possedendo i sorgenti non può modificare il programma
- Veloce, in quanto il programma e’ già in linguaggio macchina,non necessita di ulteriori traduzioni per essere eseguito.
Grazie.



