Articles

7.6. Linguaggi di programmazione ad alto livello¶

È raro che i programmatori scrivano programmi direttamente in linguaggio macchina o assembly. I file eseguibili per la maggior parte delle applicazioni contengono centinaia di migliaia o anche milioni di istruzioni in linguaggio macchina. Sarebbe molto difficile creare qualcosa del genere da zero.

I linguaggi di programmazione di alto livello sono stati inventati per astrarre i dettagli del codice macchina e aiutare i programmatori a concentrarsi sulla risoluzione dei problemi. Mentre potrebbero essere necessarie 3 o 4 righe di codice per aggiungere due numeri usando il linguaggio assembly, questo compito potrebbe essere realizzato con una singola istruzione in un linguaggio di programmazione di alto livello come C++, Java o Python. Con un linguaggio di alto livello, un programmatore crea un programma usando potenti, “grandi” operazioni che saranno poi convertite in molte piccole operazioni macchina.

I programmi scritti in un linguaggio di alto livello devono essere convertiti in codice macchina per funzionare. Questo viene fatto in anticipo convertendo un intero programma in codice macchina con un programma compilatore (compilazione del codice), o linea per linea mentre il programma viene eseguito da un interprete. Una linea in un linguaggio di programmazione di livello superiore potrebbe trasformarsi in qualsiasi punto da una a decine o più istruzioni macchina. Non solo significa che c’è meno codice da digitare, ma anche che c’è meno codice da debuggare – quando qualcosa va storto, è spesso più facile da rintracciare.

../_images/compiling.png

Le schede qui sotto mostrano come potrebbe essere il codice in vari livelli di linguaggio. Immaginiamo di progettare un software per il terminale di vendita di un ristorante; guarderemo la parte di codice che potrebbe calcolare il 15% di mancia che viene aggiunto automaticamente ai grandi gruppi. (Nota: tutte le lingue sono composte da rappresentanti di un particolare livello – non preoccupatevi dei dettagli di ciascuna.)

Per calcolare l’importo totale dovuto, prima moltiplicate il prezzo totale del pasto per 0,15. Questo ti dà la mancia per il pasto. Poi, aggiungila al prezzo del pasto per trovare il conto totale.

tip = mealCost * 0.15bill = mealCost + tip
LOAD MealCostMULT TIPRATESTORE TipLOAD MealCostADD TipSTORE Bill
010101011110010111110110101011101101101010010101010111011000111100010101011111001101101010111111

Nota che il linguaggio di alto livello è molto più compatto dell’assembly o del codice macchina e, ancora più importante, ci permette di esprimere un algoritmo ad un livello molto più vicino al reale dominio del problema. Invece di preoccuparci di caricare e memorizzare valori nei registri, possiamo esprimere comandi che assomigliano più a normali calcoli: tip = mealCost * 0.15.

Materiali di questa pagina adattati da:
Online Interactive Modules for Teaching Computer Science di Osman Balci et al.
Introduzione all’informatica usando Java di Bradley Kjell (CC BY-NC 3.0)

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *