lunedì 23 marzo 2015

Con CALIGOLA II, Cicerone programma il tuo computer!

Il manuale d'uso del Caligola II: un po'
squalliduccio nell'impaginazione e nell'uso
dei colori, poco prodigo di esempi esplicativi,
a volte confusionario e pieno di odiosissime
noticine a piè di pagina. Non so a voi,
ma a me suona piuttosto familiare...
Avete sempre odiato il latino? Bene. Da oggi tutti gli estimatori della lingua di Livio e Seneca come me, potranno cimentarsi nella programmazione del loro computer con l'IL alla mano. Contenti? A offrirvi questa inquietante possibilità. è infatti il linguaggio Caligola II. un derivato del Modula 2, che molti di voi probabilmente conosceranno come un'estensione del Pascal ad opera di quel genialone di Wirth. Ma veniamo subito alle fattezze del linguaggio che andiamo a recensire. Caligola II è strutturato esattamente come il suo compare anglofilo, con l'unica differenza che le parole chiave ed i nomi delle librerie sono tradotte in imperativi latini. Un esempio? Bhè, tanto per cominciare, potremmo citare le istruzioni WriteString e Writelnteger, che sono diventate rispettivamente ScribeSententia e ScribeNumerus, per fortuna abbreviate con ScrSen e ScrNum. Ovviamente, tutte le operazioni sui numeri dovranno essere fatte con cifre romane. Ci vuole un po' di pratica, ma per fortuna esistono delle routine di conversione numeriche già fornite col compilatore. Bene, in questa sede non approfondiamo il discorso della programmazione in cotale linguaggio, poiché da solo meriterebbe uno spazio tale da riempirci cinquecento angoli di BovaByte, tuttavia ci sembra giusto inserire un elenco di alcune parole chiave "interessanti" e la loro relativa versione in Modula 2.

MODULA 2 - CALIGOLA II
MODULE - EXEMPLAR
FROM... IMPORT - EX... CAPE
TYPE - MODUS
ARRAY OF - MATRIX+genitivo
CHARACTER - LITTERA
INTEGER - NUMERUS
BEGIN - INCIPIT
END - EXTREMUM
WITH - CUM
PROCEDURE - RATIO
VARIABILE - MUTABILIS 

Divertitevi poi a far scorrere le righe del programmino allegato, che una volta compilato non fa un bel niente, ma che riportiamo per bellezza.

(* I nomi delle variabili possono essere in una qualsiasi lingua. ve lo ricordiamo *)

EXEMPLAR Corpetto;
CAPE IntroForas,FenestraindexIntroForas.Scriptio,Sententia;
MODUS LongaSententia=MATRIX[1.MMM] LITTERAE, ExiguaSententia=MATRIX[I. XXVI] LITTERAE;
NOTAE Apritesto.correzione.createsto,fine,venti,trenta;
MUT voci LongaSententia; x1.x2,y1,y2;
 Fenestra AbsolutaeCompositae;
 Sfondo.Plano.FSfondo,FPiano.Fenestra Color;
 check.Spento.Acceso:BOOLEANUS;
 Dfin MATRIX[I..X] LITTERAE;
 Fin2: MATRIX[I..X] NUMERORUM;

RATIO Finestre(Indice: NUMERUS);
INCIPIT
 CUM Dfin[Indice] FAC
 X-I:=x1,X-II:=x2;Y-I:=y1;Y-II:=y2
 Recessus:=Sfondo;Planum:=Piano;Occultatum:=Spento;
 CursorAccensus:=VERUM;
 EXTREMUM; (* CUM *)
Fin2[Indice]:=(Dfin[Indice]);
EXTREMUM Finestre;

RATIO Elimina(parola:ExiguaSententia):ExiguaSententia;
MUT II INTEGRALIS;
 pri,ult: LITTERA;
INCIPIT
 ll =Sententia.Longitudo(parola)-II;
 Sententia.Pars(ult,parola,II,I); (* ult = ultimo carattere parola corrente *)
 SI ((ult=',') AN (ult='.') AN (ult='!') AN (ult=' ') AN (ult=':') AN (ult=')') AN (ult=']') AN (ult='”'))
 TUM Sententia.Pars(parola,parola,0,II);
 EXTREMUM; (* SI *)
REDDIS parola;
EXTREMUM Elimina;


Per chiunque fosse interessato, il Caligola Il è disponibile per il solo PC al seguente indirizzo:
CARRIOLA SOFT 
PO BOX 35345234554534 
Latina
Costa MMCMLX Sesterzi. Tra le altre novità annunciate dalla stessa software house, saranno presto disponibili al pubblico CICERO BASIC 11V, FEDRO LOGO IX VII e un importante routine-dizionario in Caligola II che traduce automaticamente le versioni dal Latino all'Italiano.




Disclaimer

Tutti gli articoli riportati su questo sito sono copyright © Paolo Besser e Davide Corrado, tranne ove diversamente specificato: gli articoli apparsi nella rubrica "L'angolo di BovaByte" sulle riviste Zzap! e The Games Machine fino al 2005 sono copyright © Xenia Edizioni Srl, quelli apparsi successivamente su The Games Machine sono copyright © Aktia, e compaiono sul sito di BovaByte su loro gentile autorizzazione. Tutti i diritti sono riservati.