- Gödel (lenguaje de programación)
-
Gödel es un lenguaje de programación declarativo, de propósito general que adhiere al paradigma de la programación lógica. Es un lenguaje fuertemente tipado, con un sistema de tipos basado en many-sorted logic con polimorfismo parametrizado. Se le dio ese nombre en honor al lógico Kurt Gödel.
Características
Gödel tiene un sistema de módulos; permite enteros y racionales de precisión arbitraria y números de punto flotante. Puede resolver restricciones sobre dominios finitos de enteros así como restricciones lineales racionales. Admite procesamiento de conjuntos finitos. Tiene también una regla flexible de cómputo que admite el operador de poda, que es una generalización del operador commit de los lenguajes de programación concurrentes.
Las facilidades meta lógicas de Gödel dan cabida a meta programas que realizan análisis, transformación, compilación, verificación y puesta a punto entre muchas otras tareas.
Ejemplo de código
El siguiente ejemplo de módulo Gödel es una especificación del máximo común divisor (MCD) de dos números. Su objetivo es mostrar la naturaleza declarativa de Gödel, pero no es particularmente eficiente. El predicado
DivisorComun
dice que sii
yj
no son cero,d
es un divisor común dei
yj
si está entre1
y el más pequeño entrei
yj
y divide a los dos en forma exacta. El predicadoMcd
dice qued
es el MCD dei
yj
si es un divisor común dei
yj
y no existee
que sea también divisor común dei
yj
y sea más grande qued
.MODULE MCD. IMPORT Integers. PREDICATE Mcd : Integer * Integer * Integer. Mcd(i,j,d) <- DivisorComun(i,j,d) & ~ SOME [e] (DivisorComun(i,j,e) & e > d). PREDICATE DivisorComun : Integer * Integer * Integer. DivisorComun(i,j,d) <- IF (i = 0 \/ j = 0) THEN d = Max(Abs(i),Abs(j)) ELSE 1 =< d =< Min(Abs(i),Abs(j)) & i Mod d = 0 & j Mod d = 0.
Enlaces externos
Categorías:- Lenguajes de programación
- Programación lógica
Wikimedia foundation. 2010.