È disponibile su GitHub "Cofandina", la seconda milestone di Monicelli, un linguaggio di programmazione esoterico interamente basato sulle "supercazzole" e ispirato alla saga cinematografica di "Amici Miei" del Regista Mario Monicelli.
Cos'è una supercazzola
Per i pochi che non conoscono il significato di supercazzola, è possibile definire questo neologismo come una sequenza casuale di termini, in alcuni casi inventati, completamente priva di senso. Lo scopo di una supercazzola è quello di ingannare l'interlocutore che fingerà di averla capita perché pronunciata velocemente e composta anche da parole comprensibili o apparentemente tali.
Un esempio di supercazzola potrebbe essere quindi il seguente:
No, no, no, attenzione! No! Pàstene soppaltate secondo l'articolo 12, abbia pazienza, sennò... posterdati, per due, anche un pochino antani in prefettura...
Elementi di programmazione con le supercazzole
Monicelli riprende lo stile di diverse supercazzole pronunciate nel corso del film, il main
, cioè l'entry point del programma (la supercazzola appunto) è infatti:
Lei ha clacsonato
mentre un valore può essere restituito tramite la seguente istruzione:
vaffanzum <expression>
Nel caso in cui non si voglia restituire alcun valore è invece sufficiente utilizzare l'espressione vaffanzum!
.
Le variabili
In Monicelli, così come in altri linguaggi, un nome di variabile può contenere numeri, caratteri maiuscoli o minuscoli ma non può iniziare con un numero. È possibile utilizzare un articolo in lingua italiana per creare una frase e il compilatore non cercherà alcuna corrispondenza tra quest'ultimo e il termine utilizzato. Ciò significa che cappello
e il cappello
si riferiscono alla medesima variabile ma non è possibile utilizzare un articolo per il nome di una variabile.
Per dichiarare una variabile si deve utilizzare un'espressione come la seguente:
voglio <varname>, <type>
e si può introdurre un valore di inizializzazione in questo modo:
voglio <varname>, <type> come se fosse <expression>
I tipi di dato
I nomi dei tipi sono associati a quelli dei personaggi principali di "Amici miei", per cui Necchi
è ad esempio int
, Mascetti
è char
e Perozzi
è float
.
Un output come il seguente:
voglio antani, Necchi come se fosse 4
corrisponde quindi all'espressione
voglio <varname>, <type> come se fosse <expression>
Dove viene dichiarata una variabile antani
di tipo Necchi
(quindi un intero) inizializzata con il valore 4
.
I cicli
La medesima variabile può poi essere utilizzata in un ciclo che riprende il do{} while();
di C in questo modo:
stuzzica
<statements>
e brematura anche, se <condition>
Ad esempio:
voglio antani, Necchi come se fosse 10
stuzzica
antani come fosse antani meno 1
e brematura anche, se antani maggiore di 0
Corrisponde a:
int antani = 10;
do {
antani = antani - 1;
} while (antani > 0);
È comunque possibile sostituire brematura
con prematura
.
L'immagine del post è ripresa da Wikipedia.