Linguaggi di programmazione di basso livello e di alto livello
I linguaggi di programmazione differiscono dai linguaggi naturali per una loro minore espressività. In generale, sono semplici e poveri (poche regole e precisione: parole chiave) ma privi di ambiguità. Non è facile classificare i linguaggi di programmazione, ma una prima distinzione, che indirettamente abbiamo già proposto negli esempi precedenti, è quella tra i linguaggi di basso livello e i linguaggi di alto livello.
Linguaggi di basso livello
Ogni processore ha un proprio linguaggio articolato in un insieme di istruzioni macchina i cui codici numerici sono interpretati come operazioni elementari (per esempio, il caricamento di un registro interno al processore con un numero, oppure la somma tra il valore contenuto in una locazione di memoria e il valore contenuto in un registro del processore). Questo tipo di linguaggio, molto distante dall’usuale modo di ragionare dell’uomo, comporta un lavoro complesso per l’implementazione degli algoritmi. Inizialmente, questo era l’unico modo per programmare un computer: è per migliorare questo stato di cose che si realizzarono linguaggi intermedi basati su una codifica simbolica delle istruzioni macchina.
Un programma codificato mediante un linguaggio diverso dal linguaggio delle istruzioni macchina non è più direttamente eseguibile dal processore del computer: richiede una fase di traduzione del codice originale, il programma sorgente, in una sequenza di istruzioni del linguaggio macchina, il programma oggetto o eseguibile.
Assembly
Il primo linguaggio di questo tipo è stato l’Assembly, in cui per ogni singola istruzione macchina viene usato uno specifico codice mnemonico: anche se garantiva una relativa semplificazione del lavoro, il livello di riferimento era ancora quello del processore del computer. La necessità di astrarre l’implementazione degli algoritmi dalla logica di funzionamento dei processori ha portato ai cosiddetti linguaggi di alto livello, orientati non più al funzionamento della macchina, ma alla risoluzione di problemi.
Linguaggi di alto livello
Questi linguaggi, essendo virtualmente indipendenti da uno specifico processore con le sue particolari istruzioni, hanno consentito di scrivere software portatile, permettendo l’utilizzo di uno stesso codice sorgente su computer di tipo diverso.
Classificazione dei linguaggi di programmazione di alto livello
Una ulteriore classificazione dei linguaggi di programmazione di alto livello è quella tra problem-oriented, ovvero linguaggi realizzati per la risoluzione di problemi in specifiche aree applicative, e i general-purpose, ovvero linguaggi adatti per la risoluzione di una vasta gamma di problemi.
-
Linguaggi di programmazione - Parte 1
-
Linguaggi espressivi
-
Linguaggi e tecniche della comunicazione pubblica
-
I Linguaggi