CLU (linguaggio di programmazione)
Il CLU è un linguaggio di programmazione creato al MIT da Barbara Liskov e dai suoi studenti tra il 1974 ed il 1975. È noto per l'uso di costruttori di tipi di dati astratti che includevano il codice che operava su di essi, un passo chiave in direzione della programmazione orientata agli oggetti (OOP). Purtroppo molte delle altre caratteristiche dell'OOP erano mancanti od incomplete, come l'ereditarietà, ed il linguaggio era anche appesantito da una sintassi alle volte frustrante. I ClusterLa sintassi del CLU era basata sull'ALGOL, allora considerato il punto di partenza per lo sviluppo di molti nuovi linguaggi. Il punto chiave era il concetto di cluster, un sistema di estensione dei tipi e radice del nome del linguaggio (CLUster). I cluster corrispondono generalmente al concetto di un "oggetto" in un linguaggio orientato agli oggetti ed hanno circa la stessa sintassi. Ecco la sintassi in CLU di un cluster che implementa i numeri complessi: complex_number = cluster is add, subtract, multiply, ... rep = record [ real_part: real, imag_part: real ] add = proc ... end add; subtract = proc ... end subtract; multiply = proc ... end multiply; ... end complex_number; Mentre i cluster offrivano per l'epoca un sistema avanzato per la strutturazione dei programmi, il CLU non offriva però nessun tipo di struttura per gli stessi cluster. I nomi dei cluster erano globali, e nessun meccanismo di spazio dei nomi era stato previsto per raggruppare i cluster o permettergli di essere creati "localmente" all'interno di altri cluster. Questo problema non è limitato al CLU: è sorprendente notare come così tanti linguaggi hanno manifestato l'assenza di questa caratteristica - data l'importanza nell'ALGOL di dare uno scopo alle variabili, sembrava che dare uno scopo ai nomi dei cluster/oggetti dovesse essere una cosa ovvia. Il CLU non permette le conversioni implicite dei tipi. In un cluster le conversioni esplicite de tipi "up" (su) e "down" (giù) cambiano tra il tipo astratto e la sua rappresentazione. Esiste un tipo universale "any" (qualunque) ed una procedura Altre caratteristicheUn'altra caratteristica importante del sistema dei tipi del CLU erano gli iteratori, che restituivano oggetti da una collezione uno ad uno. Gli iteratori erano "scatole nere" che offrivano la medesima API per qualunque tipo di dati dovessero trattare. Perciò l'iteratore per una collezione di Il CLU includeva anche la gestione delle eccezioni, basata su quella presente in altri linguaggi; le eccezioni erano sollevate utilizzando L'ultima delle caratteristiche degne di nota del CLU era l'assegnazione multipla, dove una o più variabili potevano apparire a sinistra di un operatore di assegnamento. Ad esempio, scrivere Tutti gli oggetti di un programma CLU vivevano nell'heap e la gestione della memoria era automatica. Curiosità
Influenze su altri linguaggi di programmazione
Collegamenti esterni
|
Portal di Ensiklopedia Dunia