- Alice (lenguaje de programación)
-
Alice Desarrollador(es)
www.ps.uni-sb.de/alice/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) Tipo de dato Fuertemente tipado,
inferencia de tipos.Influido por Meta Lenguaje,
Oz.Sistema operativo Multiplataforma 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:
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 evaluarval x = spawn fib n;
La variable
x
se liga a un valor futuro. Cuando una operación requiere el valor actual dex
, su evaluación queda bloqueada hasta tanto el valor esté disponible.Enlaces externos
Categorías:- Lenguajes funcionales
- Lenguajes de programación multiparadigma
Wikimedia foundation. 2010.