Cool linguaggio di programmazione | |
---|---|
Autore | Alexander Aiken |
Data di origine | 1996 |
Utilizzo | Didattico |
Paradigmi | Orientato agli oggetti |
Tipizzazione | statica, forte |
Estensioni comuni | .cl |
Influenzato da | Sather164, Java, ML, Pascal |
Cool, acronimo di Classroom Object Oriented Language, è un linguaggio di programmazione creato da Alexander Aiken a scopo didattico per i corsi universitari di compilatori. Sebbene molto semplificato, Cool ha varie delle caratteristiche dei linguaggi di programmazione più usati, tra cui l'uso degli oggetti, la gestione automatica della memoria e una tipizzazione statica e forte.
Il compilatore Cool di riferimento è scritto in C++, e genera codice per un simulatore MIPS, SPIM.
Caratteristiche
[modifica | modifica wikitesto]Essendo Cool un linguaggio per uso didattico, non possiede molte delle caratteristiche dei linguaggi di programmazione più general purpose. Ad esempio prevede l'operatore "minore di" ma non "maggiore di". La sintassi è molto scarna e la libreria standard contiene poche classi di base. La compilazione separata non è supportata, anche se il compilatore prevede la possibilità di inserire più file sorgente come input. Ogni programma Cool deve definire una classe Main, che deve avere un costruttore senza argomenti da cui l'esecuzione ha inizio. I namespace non sono supportati.
Esempio di programma Cool per il calcolo di un fattoriale:
class Main inherits IO { main(): Object {{ out_string("Inserire un intero maggiore o uguale di 0: "); let input: Int <- in_int() in if input < 0 then out_string("ERRORE: il numero dev'essere maggiore o uguale a 0\n") else { out_string("Il fattoriale di ").out_int(input); out_string(" e' ").out_int(factorial(input)); } fi; }}; factorial(num: Int): Int { if num = 0 then 1 else num * factorial(num - 1) fi }; };
Bibliografia
[modifica | modifica wikitesto]- (EN) Cool: A Portable Project for Teaching Compiler Construction, su portal.acm.org.
- (EN) Manuale di riferimento di Cool (PDF), su theory.stanford.edu.
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Cool: The Classroom Object-Oriented Language, su theory.stanford.edu.