Alice (linguaggio di programmazione)
Alice è un linguaggio di programmazione funzionale progettato presso l'Università della Saarland. È un dialetto di Standard ML, con il supporto aggiuntivo per la valutazione lazy, la concorrenza e la programmazione a vincoli.
| Alice linguaggio di programmazione | |
|---|---|
| Autore | Università della Saarland |
| Data di origine | 2000 e 16 giugno 2000 |
| Paradigmi | programmazione a vincoli, programmazione funzionale, programmazione concorrente e programmazione imperativa |
| Influenzato da | ML e Oz |
| Implementazione di riferimento | |
| Licenza | licenza MIT |
| Sito web | www.ps.uni-saarland.de/alice/ |
L'implementazione di Alice utilizza la macchina virtuale SEAM (Simple Extensible Abstract Machine). Alice è distribuito come software libero e fornisce la compilazione just-in-time sia verso bytecode che in codice nativo per l'architettura x86.
Esempio
modificaAlice estende Standard ML con diverse primitive per la valutazione lazy e la concorrenza. Per esempio, i thread possono essere creati utilizzando la parola chiave spawn. Si consideri il semplice algoritmo per il calcolo della successione di Fibonacci:
fun fib 0 = 0
| fib 1 = 1
| fib n = fib(n-1) + fib(n-2);
Per grandi valori di n, fib n richiederà un lungo tempo di calcolo. Questo calcolo può essere effettuato in un thread separato da:
val x = spawn fib n;
La variabile x è ora legata a un "valore futuro". Quando un'operazione richiede il valore effettivo di x, essa si blocca finché il thread corrispondente non ha completato la computazione. Per sfruttare il calcolo parallelo, si può ridefinire la funzione fib come segue:
fun fib 0 = 0
| fib 1 = 1
| fib n = spawn fib(n-1) + fib(n-2);
Voci correlate
modificaCollegamenti esterni
modifica- (EN) Homepage di Alice, su ps.uni-saarland.de.