In breve: Un computer capisce solo segnali elettrici, ma noi scriviamo codice leggibile. I livelli di astrazione fanno da ponte fra noi e la macchina.
Che cosa significa "astrazione"
Astrarre vuol dire nascondere i dettagli complicati. Pensa al volante di un'auto. Lo giri a destra e l'auto va a destra. Non devi sapere come funzionano gli ingranaggi sotto.
In informatica succede la stessa cosa. Scriviamo istruzioni semplici e la macchina le esegue. I dettagli interni restano nascosti sotto strati successivi.
Ogni strato parla con quello sotto e con quello sopra. Così il lavoro diventa gestibile e ordinato.
I principali livelli, dal basso verso l'alto
Il livello più basso è quello fisico. Qui ci sono solo segnali elettrici, acceso o spento. Si rappresentano con i numeri 0 e 1.
Sopra c'è il linguaggio macchina. Sono sequenze di bit che la CPU esegue direttamente. Per noi sono difficili da leggere.
Poi viene il linguaggio assembly. Usa parole brevi come MOV o ADD. È più leggibile, ma molto legato al singolo processore.
Più in alto troviamo i linguaggi ad alto livello. Esempi tipici sono Python, Java e C. Sono vicini al linguaggio umano e funzionano su macchine diverse.
Il passaggio fra un livello e l'altro avviene tramite traduttori. I principali si chiamano compilatori e interpreti.
Esempi pratici
Immagina di voler sommare due numeri. In Python scrivi una riga: risultato = a + b. Chiara e breve.
In assembly servono più istruzioni. Devi caricare i valori nei registri e poi sommarli. Il significato è lo stesso, ma il dettaglio è maggiore.
In linguaggio macchina vedresti solo una sequenza di bit. Per esempio 10110000 01100001. Solo la CPU la legge senza fatica.
Un altro esempio è la macchina virtuale Java. Il programma viene tradotto in bytecode intermedio. Poi la macchina virtuale lo esegue su sistemi diversi.
Questo mostra come l'astrazione renda i programmi portabili e riutilizzabili.
Parole difficili
- Astrazione: nascondere i dettagli interni e mostrare solo l'essenziale.
- Bit: cifra binaria che vale 0 oppure 1.
- CPU: unità centrale che esegue le istruzioni del programma.
- Compilatore: programma che traduce il codice sorgente in linguaggio macchina.
- Interprete: programma che legge ed esegue il codice riga per riga.
- Bytecode: codice intermedio fra linguaggio ad alto livello e macchina.
Riferimenti
- Norma: Riordino degli istituti tecnici
- Obiettivo formativo coperto: ob.tecnico-informatica-telecomunicazioni.informatica.cl3.linguaggi-astrazione.01