Basi della programmazione

di Giorgio Davanzo
Forse non tutti lo sanno, ma i dispositivi elettronici di uso comune funzionano grazie ad un software scritto da programmatori: smart TV, smartphone, forni, lavatrici, frigoriferi, stampanti, e tutti i dispositivi con display. Elettronica programmabile All'interno di questi apparecchi, un microprocessore elabora le istruzioni del programma e coordina ingressi e uscite.

Che lingua parla un processore?

Essendo un componente elettronico, il suo linguaggio è il codice binario; una serie lunghissima di bit uno e zero precisamente combinati insieme arriva al cuore del sistema come farebbe una chiave nella serratura e impartisce i comandi.

Come si inviano le informazioni ad un dispositivo elettronico?

Come nella nostra società, quando si parlano lingue differenti è necessario che i messaggi vengano tradotti.

Questa operazione può essere effettuata in due modi:
dal mittente prima dell'invio del messaggio, oppure a ricezione avvenuta, ad opera del destinatario.

N.B.: il linguaggio macchina ha una struttura compatta che mira ad ottimizzare l'utilizzo delle risorse hardware, quindi a rendere l'esecuzione più rapida possibile; se apriamo un file nel formato del dispositivo con un editor di testo, oltre a vedere una serie indecifrabile di caratteri, noteremo la mancanza di inutili spazi vuoti. Linguaggio macchina Arriviamo quindi alla prima distinzione tra i linguaggi di programmazione.

Linguaggi compilati e linguaggi interpretati

Il linguaggio compilato, viene scritto tramite un ambiente di sviluppo (IDE) installato su un pc; questo software guida nella corretta stesura del codice, permette di verificarne la correttezza formale e simularne il funzionamento passo passo (debug), arrivando al processo ultimo: la compilazione.

Per compilare il programma l'ambiente di sviluppo ha bisogno di sapere per quale dispositivo si vuole preparare il pacchetto.

In base a ciò userà il "dizionario" (compilatore) opportuno.

Lo stesso programma potrà essere compilato per diversi dispositivi presenti nell'elenco delle opzioni dell'ambiente di sviluppo.

Diversi compilatori daranno origine a differenti file (ad esempio file exe) compatti ma con contenuto comprensibile solo ad un tipo di macchina.

N.B.: un programma compilato per Windows non può funzionare su IOS.

Un esempio di linguaggio compilato è il C


La seconda categoria riguarda i linguaggi interpretati.

Questi linguaggi arrivano a destinazione, cioè nella macchina che li dovrà eseguire, nello stesso modo in cui sono stati scritti dal programmatore.

Il programma risulta più ingombrante e meno compatto rispetto agli eseguibili e deve essere eseguito in contemporanea all'interprete;

questo implica un maggior utilizzo di risorse, quindi una resa minore in termini di velocità.

Il programma interpretato si presta però ad essere copiato e personalizzato facilmente in base alle proprie necessità.

Un esempio di linguaggio interpretato é Python.


L'hardware dei dispositivi e la programmazione sono due elementi strettamente correlati.
La rete internet permette di collegare i dispositivi in rete introducendo concetti tipo il controllo remoto o la domotica.
Per gestire questi processi é necessario che i programmi integrino funzioni legate alla comunicazione internet: vediamo in che modo.