Alice (lenguaje de programación)
# Alice (lenguaje de programación)

Alice es un lenguaje de programación funcional diseñado en el Programming Systems Lab de la Universidad del Sarre. Es un dialecto de Standard ML, extendido con soporte para evaluación perezosa, Concurrencia (Programación muti-hebras y programación distribuida por medio de llamada remota de procedimientos) y Programación por restricciones.

La implementación de Alice de la Universidad Saarland utiliza la máquina virtual abstracta extensible SEAM (Simple Extensible Abstract Machine por sus siglas en inglés). Es un Software libre, que incluye compilación al vuelo hacia código binario propio así como para código de máquina para la arquitectura x86.

El mecanismo de llamada remota de procedimientos de Alice depende de su máquina virtual y permite realizar llamadas entre diferentes computadores.

## Ejemplo

Alice extiende Standard ML con primitivas para evaluación perezosa y concurrencia. Por ejemplo, se puede crear nuevas hebras (threads, en inglés) con la primitiva spawn. El ejemplo siguiente implemente de forma ingenua una función que calcula los números de Fibonacci:

Para grandes valores de n, fib n el tiempo de cómputo aumentará sustancialmente. Ese cálculo puede realizarse en una hebra diferente al evaluar

La variable x se liga a un valor futuro. Cuando una operación requiere el valor actual de x, su evaluación queda bloqueada hasta tanto el valor esté disponible.

