Com’è creato un linguaggio di programmazione?

Cos'è? - Miniatura della rubrica di marcogarosi.it
Cos'è? - Miniatura della rubrica di marcogarosi.it

Se sei un appassionato del mondo informatico, sicuramente hai sentito parlare almeno una volta dei linguaggi di programmazione. Se sei un “addetto ai lavori”, invece, questi non hanno certamente bisogno di presentazioni. Ma ti sei mai chiesto com’è creato un linguaggio di programmazione?

Se ti sei posto questo interrogativo, sei giunto nel posto giusto: nelle prossime righe, infatti, ti spiegherò come viene ideato un linguaggio di programmazione. Che tu ci creda o no, infatti, non è un processo tanto semplice quanto potresti pensare.

Il livello hardware

Un linguaggio di programmazione è quello strumento fondamentale che serve per creare il software; a sua volta, il software è il tassello che permette di programmare (letteralmente) la circuteria di un computer (l’hardware), “spiegandole” esattamente cosa deve fare.

Proprio perché il software deve comandare l’hardware, è fondamentale che possa essere capito da quest’ultimo. Ogni architettura hardware, infatti, è capace di comprendere soltanto alcune istruzioni, limitate nel numero. Queste istruzioni sono rappresentate in codice macchina – ossia come sequenze di bit 0 e bit 1, che corrispondono, semplificando, ad impulsi elettrici.

Il problema della comprensione

Tuttavia, come sai, il software viene scritto dagli umani e viene eseguito dai computer. Il problema maggiore, perciò, è permettere ai programmatori di scrivere in maniera semplice le loro applicazioni e poi trasformarle in codice macchina per la CPU.

Proprio per questo motivo, quindi, gli ingegneri hanno inventato i linguaggi di programmazione: rappresentano quel livello di astrazione dall’hardware – più o meno profondamente marcato – che è comprensibile dagli umani e, al tempo stesso, trasformabile semplicemente in codice macchina.

Com’è creato un nuovo linguaggio di programmazione

A questo punto sorge una nuova problematica: devi definire un insieme di parole chiave e di regole ben precise, che non lascino spazio a nessun’ambiguità; il compilatore o l’interprete, in caso contrario, non sapranno come comportarsi.

In seguito, devi descrivere le istruzioni del tuo linguaggio e come queste sono legate al codice di livello inferiore; in altre parole, come devono essere tradotte in codice Assembly (poi trasformato, a sua volta, in puro codice macchina). Insomma, è come se stessi traducendo dall’italiano all’inglese.

Per terminare, devi realizzare un compilatore o un interprete che, sulla base delle regole che hai definito, renda il codice di alto livello del vero e proprio software eseguibile dalla CPU. Questo è uno degli aspetti più complicati nella realizzazione di un nuovo linguaggio di programmazione, poiché devi accertarti che sia ottimizzato, prestante e privo di bug.

Tutti i linguaggi di programmazione, come i 10 migliori del 2019, sono stati creati partendo proprio da questi basi. E ora, sei pronto a realizzare il tuo nuovo linguaggio di programmazione?

Marco Garosi 87 Articoli
Sono un informatico, appassionato di programmazione e progettazione di sistemi.