Introducción
Mercury es un lenguaje de programación lógica / funcional que combina la claridad y la expresividad de la programación declarativa con funciones avanzadas de análisis estático y detección de errores. Como lenguaje lógico, está basado en el cálculo de predicados de primer orden y utiliza un sistema de inferencia automático para deducir conclusiones a partir de hechos y reglas declarados.
Dentro de sus características, se destacan:
- Basado en prolog (recomendamos el tutorial disponible aquí)
- Soporta modos
- Tiene un fuerte sistema de determinismo
- Tiene garbage collector
- Es modularizado
- Su compilador facilita el análisis estático y la optimización de código
- Variedad de lenguajes de destino
- Compila a código de máquina
- Contiene un sistema de depuración avanzada
- Permite generar automáticamente documentación a partir de anotaciones dentro del código
Instalación
Unix (recomendado):
- Se requiere instalar GNU C (gcc) y GNU Make
- Descargar la clave GPG del autor del software y autorizar al sistema operativo para descargar cualquier software publicado por el autor.
- Se debe agregar el repositorio de software al sistema operativo.
- Instalar el conjunto de paquetes recomendado.
sudo apt update
sudo apt install build-essential
sudo apt install wget ca-certificates
cd /tmp
wget https://paul.bone.id.au/paul.asc
sudo cp paul.asc /etc/apt/trusted.gpg.d/paulbone.asc
sudo nano /etc/apt/sources.list
# Dentro del archivo, agregar las siguientes líneas
deb http://dl.mercurylang.org/deb/ DISTRO main
deb-src http://dl.mercurylang.org/deb/ DISTRO main
# Donde “DISTRO” es el nombre de versión del sistema operativo (sid, bookworm, bullseye, disco, focal, jammy)
sudo apt install mercury-recommended
Compilación
Inicialmente se crea un archivo nombre.m (nombre es definido por el programador) dónde irá el código del programa. Para compilarlo en la consola basta con escribir: “mmc nombre.m”.
mmc hace referencia al compilador de Mercury.
Tutorial
Tutorial básico de programación lógica en Mercury, donde se abordan cuatro temas principales:
- Modos
- Predicados
- Determinismo
- Tipos
Ejemplos
Algunos ejemplos básicos de Mercury
Recursos Extra
Para probar código Mercury online, sugerimos visitar: https://glot.io/new/mercury
Creado por:
Juan Castelblanco
Ivan Cepeda
Camilo Rodriguez
Stevan Valbuena
Samuel Salgado
Diego Bulla