Articulo de referencia

Gödel (lenguaje de programación)

Gödel es un lenguaje de programación declarativo y de propósito general que se adhiere al paradigma de la programación lógica . Es un lenguaje fuertemente tipado , cuyo sistema ...

Gödel es un lenguaje de programación declarativo y de propósito general que se adhiere al paradigma de la programación lógica . Es un lenguaje fuertemente tipado , cuyo sistema de tipos se basa en la lógica multisortada con polimorfismo paramétrico . Recibe su nombre del lógico Kurt Gödel .

Características

Gödel cuenta con un sistema modular y admite números enteros y racionales de precisión arbitraria , así como números de coma flotante. Puede resolver restricciones sobre dominios finitos de enteros y también restricciones racionales lineales. Admite el procesamiento de conjuntos finitos . Además, dispone de una regla de cálculo flexible y un operador de poda que generaliza la funcionalidad de los lenguajes de programación lógica concurrente.

Las funcionalidades metalógicas de Gödel brindan soporte a metaprogramas que realizan análisis, transformación , compilación, verificación y depuración, entre otras tareas.

Código de ejemplo

El siguiente módulo de Gödel es una especificación del máximo común divisor (MCD) de dos números. Su propósito es demostrar la naturaleza declarativa de Gödel, no ser particularmente eficiente. El CommonDivisorpredicado dice que si iy jno son cero, entonces des un divisor común de iy jsi está entre 1y el menor de iy jy divide a ambos iy jexactamente. El Gcdpredicado dice que des un máximo común divisor de iy jsi es un divisor común de iy j, y no hay ningún eque también sea un divisor común de iy jy sea mayor que d.

MÓDULO MCD. IMPORTAR Enteros. PREDICADO Mcd : Entero * Entero * Entero. Mcd(i,j,d) <- Divisor común(i,j,d) y ~ ALGUNOS [e] (DivisorComún(i,j,e) y e > d). PREDICADO Divisor común: Entero * Entero * Entero. DivisorComún(i,j,d) <- SI (i = 0 \/ j = 0) ENTONCES d = Máx(Abs(i),Abs(j)) DEMÁS 1 =< d =< Min(Abs(i),Abs(j)) & i Mod d = 0 & j Mod d = 0.
  • https://web.archive.org/web/20091207092823/http://www.scs.leeds.ac.uk/hill/GOEDEL/expgoedel.html
  • https://mitpress.mit.edu/9780262519151/the-godel-programming-language/