Dal linguaggio macchina ai linguaggi ad alto livello

Ogni CPU ( Central Processing Unit, cioè Unità Centrale di Elaborazione ) di un computer è in grado di eseguire quella CPU.

Ogni CPU ( Central Processing Unit, cioè Unità Centrale di Elaborazione ) di un computer è in grado di eseguire quella CPU. Operazioni elementari sono,
ad esempio:

- copiare il contenuto di una locazione di memoria in un registro della CPU;
- copiare il contenuto di un registro in una locazione di memoria;
- effettuare un'operazione aritmetica o logica fra i contenuti di due registri.

Il linguaggio macchina è un linguaggio binario, questo significa che ogni istruzione è rappresentata da un numero binario, cioè da una sequenza di 1 e 0.
L'intero programma in linguaggio macchina è quindi una lunga sequenza da 1 e 0.
Scrivere un programma in questo modo è ovviamente molto difficile perchè non è immediato per il programmatore comprendere il significato di quello
che sta scrivendo. Il primo passaggio ad un livello di maggiore comprensibilità è costituito dal linguaggio assembly, nel quale ogni istruzione elementare è
codificata con simboli, che prevedono l'uso dei caratteri dell'alfabeto oltre alle cifre, e sono detti alfanumerici. Ad esempio, l'istruzione che aggiunge al registro A
della CPU il numero contenuto nella locazione 100, in un linguaggio macchina potrebbe essere codificata nel modo seguente:

101 10001 01100100

In questa scrittura, i caratteri 101 10001 formano il codice dell'istruzione "aggiungi ad A il contenuto della locazione che segue", mentre 01100100 è il
numero 100 scritto in base 2. In linguaggio assembly potrebbe essere scritta:

ADDA MEM

Nella quale ADDA è il codice alfanumerico dell'istruzione e MEM è un simbolo che rappresenta la locazione di memoria ( il cui valore viene definito all'inizio
del programma assembly).
Un programma scritto in assembly, per poter essere eseguito, deve essere tradotto in linguaggio macchina, sostituendo ai codici alfanumerici i corrispondenti
valori binari. I programmi che effettuano questa traduzione vengono detti assemblatori.
Scrivere programmi in assembly per risolvere problemi complessi richiede un tempo molto lungo, senza contare la difficoltà per trovarne gli errori o per
effettuare delle modifiche. Fin dagli anni '50 furono creati dei linguaggi, detti ad alto livello, che mettevano a disposizione del programmatore istruzioni più vicine
al suo mondo di pensare e di costruire gli algoritmi. I primi furono il FORTRAN (Formula Translation) ed il COBOL (Common Business Oriented Language),
destinati, rispettivamente, a programmi di tipo scientifico-matematico ed ad applicazioni riguardanti la gestione di archivi.
Successivamente vennero sviluppati molti linguaggio, tra i più noti ricordiamo il BASIC ( Begginers All Purpose Symbolic Instructional Code) un linguaggio
semplice destinato a chi iniziava ad apprendere la programmazione. Nel 1971 N. Wirth definì il linguaggio Pascal nel quale venivano applicati rigorosamente
i principi della programmazione strutturata e che si impose ben presto come linguaggio didattico. Negli anni '70 venne anche sviluppato il linguaggio C,
che si diffuse nella programmazione professionale, per le possibilità che offriva al programmatore esperto.
Dagli anni '80 in poi si è diffusa la programmazione orientata agli oggetti, per la quale si usano linguaggio quali Smalltalk, C++, Java, VisualBasic. In questi
linguaggi si raggiunge un livello di astrazione ancora maggiore, consentendo al programmatore di definire nuovi oggetti e le procedure con le quali è possibile
manipolarli, in modo tale che i dati del programma possano adattarsi alla rappresentazione più opportuna del problema.
I programmi scritti in linguaggio ad alto livello vengono tradotti in linguaggio macchina da altri programmi chiamati compilatori.

- Per suggerimenti o delucidazioni <[email protected]> ciao! ;)

Privacy Policy