Alice (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Alice
Desarrollador(es)
?
Información general
Paradigma Multiparadigma,
imperativo,
funcional,
paralelo,
imperativo.
Apareció en 2000
Diseñado por Universidad del Sarre
Última versión estable 1.4 (3 de mayo de 2007)
Sistema de tipos Fuertemente tipado,
inferencia de tipos.
Influido por ML,
Oz.
Sistema operativo Multiplataforma
Licencia Licencia MIT

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[editar]

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:

 fun fib 0 = 0
   | fib 1 = 1
   | fib n = fib(n-1) + fib(n-2);

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

 val x = spawn fib n;

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.

Enlaces externos[editar]