- Mercury (lenguaje)
-
Mercury es un lenguaje lógico-funcional, es decir, integra "soluciones puras" y computación con información parcial.
Contenido
Historia
Es un lenguaje lógico funcional que está basado en la programación declarativa pura, un lenguaje de propósito general que fue diseñado para resolver aplicaciones del “mundo real” de forma robusta; fue desarrollado por Fergus Henderson, Thomas Conway y Zoltan Somogyi en la universidad de Melbourne el 8 de abril de 1995; la sintaxis es parecida a la de Prolog y soporta polimorfismo.
Tipacion de datos
Usa un sistema estático de chaqueo de tipos similar al de Haskell , pero también soporta tipificación dinámica ya que dispone del tipo universal (UNIV), está definido en la librería estándar en el modulo std_util, con la ayuda de estos predicados type_to_univ/2 y univ_to_type/2 se puede convertir un tipo en universal y viceversa , este tipo universal es usado en situaciones en las que se necesita colecciones heterogéneas.
Determinismo
El determinismo en Mercury se define mediante categorías usando estos predicados:
Categorías Número de Soluciones det 1 semidet <=1 multi >=1 nondet >=0 failure 0
Ventajas
Es un lenguaje puro , comparado con Prolog ,es más declarativo puesto que carece de declaraciones “extra-lógicas" como “poda” y E/S imperativa .Permite una optimización mejor del programa . Gracias a estas optimizaciones debidas a la pureza del programa , un programa escrito en mercury es más rápido que uno equivalente realizado en prolog.
Proyectos
HAL Project: es un lenguaje lógico funcional con restricciones realizado por la universidad de Melbourne y de la universidad de Monash.
Aditi Project : Es un lenguaje lógico para las bases de datos realizado por la universidad de Melbourne.
Enlaces
- [1] (Universidad de Melbourne departamento de ciencias de la computación e ingeniería de software).
Wikimedia foundation. 2010.