StrayBASIC di Paolo Caressa: un BASIC da provare su Linux

Basta un prompt > per far venire voglia di scrivere un programma.

basic programming language
basic programming language

Oggi ho provato StrayBASIC di Paolo Caressa sul mio computer con Ubuntu.

È stata una sorpresa vedere Caressa in veste di guru informatico perché lo seguo su Youtube da qualche anno per i suoi bellissimi video di matematica e fisica teorica, ma non sapevo lavorasse come IT Expert al GSE (Gestore dei Servizi Energetici, la società pubblica italiana che promuove le energie rinnovabili e l’efficienza energetica).

Come al solito, mi sono reso conto di essere molto distratto perché lui lo ha scritto bene nel suo profilo Youtube: “Mi occupo di informatica, matematica e divulgazione scientifica.”

Ho scoperto comunque solo oggi questa sua attitudine nel video Good Old Boy: i 60 anni del BASIC al Codemotion Milan 2024.

Parla del BASIC che è stato per me, come per molti, il primo approccio all’informatica: scrivere programmi in BASIC.

Io lo facevo su un Philips MSX con un processore Z80 (il processore di Federico Faggin a 8 bit che faceva persino i calcoli in virgola mobile, interamente via software) e 64 kB di memoria RAM (aveva infatti un bus indirizzi a 16 bit), ma avevo – novità extra lusso per l’epoca – un floppy disk drive nel nuovo formato da 3 pollici e mezzo.

BASIC è stato successivamente snobbato da programmatori e computer sciintis per i suoi (innegabili) difetti, il più celebre dei quali era quello di consentire una spaghetti programming.

Ma BASIC è stato il motore che ha reso possibile l’accesso all’informatica per milioni di persone e l’avvio della vera cultura di massa. Quando Bill Gates ha fondato Microsoft lo ha fatto per commercializzare un interprete BASIC: l’Altair BASIC, scritto con Paul Allen e Monte Davidoff.

Mi è presa la nostalgia per il monitor a 80 colonne a fosfori verdi, per quelle notti in mansarda con poca luce, un solo manuale di basic e infiniti territori da esplorare. Oggi è davvero difficile raccontare quel sentimento di vertigine che si provava verso la vastità di applicazioni che la mente ci metteva davanti, era tutto da fare.

Probabilmente oggi con l’AI è un po’ la stessa cosa, ma il paradigma sta cambiando perché sembrano più le cose che potrà fare l’AI da sola senza di noi.

Scaricati i sorgenti, compilato il programma, avviato l’interprete: sul terminale compare il nome in caratteri ASCII, seguito da un essenziale messaggio:

StrayBasic by Paolo Caressa

Ed eccoci pronti a cominciare. Ci sono anche i fosfori verdi 🙂

Vediamo i passaggi uno alla votla.

Scaricare StrayBASIC

Il codice è disponibile nel repository GitHub di Paolo Caressa. Per scaricarlo basta avere Git installato ed eseguire:

git clone https://github.com/pcaressa/straybasic.git
cd straybasic

GitHub propone anche il comando gh repo clone: gh è la sua interfaccia da riga di comando, ma per questa operazione il normale git è sufficiente.

Compilare con GCC su Ubuntu

Le istruzioni che ho trovato utilizzano Clang, un compilatore C e C++ alternativo a GCC. Sul mio computer ho usato GCC con questo comando:

gcc -O1 -Wno-pointer-sign -o straybasic straybasic.c -lm

Il dettaglio da ricordare è -lm, che collega la libreria matematica. Nel primo tentativo lo avevo omesso e il linker si era lamentato con messaggi come:

riferimento non definito a `acos'
riferimento non definito a `asin'

Il compilatore aveva tradotto il sorgente, ma per costruire l’eseguibile mancavano le funzioni matematiche richieste dal programma. Aggiungendo -lm dopo il file sorgente, il collegamento è riuscito.

Sono rimasti alcuni warning: il codice ignora il valore restituito da chiamate a read, fgets e system. Sono avvisi su controlli che potrebbero essere aggiunti; nel mio caso non hanno impedito la compilazione e l’avvio.

Avviare l’interprete

Una volta ottenuto l’eseguibile:

./straybasic

Per uscire, come ricorda il messaggio iniziale:

BYE

La prima prova è riuscita: l’interprete si avvia e presenta il suo prompt. Adesso viene la parte più interessante, esplorare il linguaggio e scrivere qualche programma.

Un’occasione anche per la didattica

Da docente di informatica, trovo interessante anche il percorso necessario per arrivare a quel prompt. In pochi passaggi si incontrano concetti concreti: repository, codice sorgente, compilatore, linker, librerie ed eseguibile.

Perfino l’errore sulla libreria matematica diventa un piccolo esempio utile: tradurre un sorgente e collegare tutte le funzioni necessarie sono due fasi distinte della costruzione di un programma.

E poi c’è il BASIC, con l’invito a sperimentare che un semplice prompt porta con sé. Per ora mi fermo al primo avvio; tornerò sull’argomento dopo aver fatto qualche prova.

E sì, emozionante rivedere l’esecuzione di quello che credo sia stato il mio primo programma:

Primo programma BASIC
Primo programma BASIC

Riferimenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.