Gödel é um linguagem de programação declarativa, de propósito geral que adere ao paradigma lógico. É uma linguagem fortemente tipada, o sistema de tipos é baseado em muitos ordenados da lógica com polimorfismo paramétrico. Seu nome é uma homenagem ao lógico Kurt Gödel.
Gödel | |
---|---|
Paradigma | lógico, declarativo |
Surgido em | 1992 |
Última versão | 1.5 (11/8/1995) |
Criado por | John Lloyd & Patricia Hill |
Estilo de tipagem | forte |
Características
Gödel tem um sistema de módulos, e suporta inteiros de precisão arbitrária, racionais de precisão arbitrária, e também números de ponto flutuante. Pode resolver restrições sobre domínios finitos de inteiros e também restrições racionais lineares. Ele suporta o processamento de conjuntos finitos. Ele também tem uma regra de computação flexível e um operador de poda que generaliza a consignação (em inglês: commit) das linguagens de programação lógica concorrente.
As instalações meta-lógicas da linguagem Gödel fornecem suporte para meta-programas que fazem análise, transformação, compilação, verificação e depuração, entre outras tarefas.
Código de exemplo
O módulo de Gödel que se segue é uma especificação do maior divisor comum (mdc) de dois números. Pretende-se demonstrar a natureza declarativa de Gödel, e não, o ser particularmente eficaz.
O predicado CommonDivisor
diz que se i
e j
não são zero, então d
é um divisor comum de i
e j
se situa entre 1
e os menores entre i
e j
e divide ambos i
e j
exatamente.
O predicado Mdc
diz que d
é um máximo divisor comum de i
e j
se for um divisor comum de i
e j
, e não há e
que também é um divisor comum de i
e j
e é maior do que d
.
MODULE MDC. IMPORT Integers.
PREDICATE Mdc : Integer * Integer * Integer. Mdc(i,j,d) ← CommonDivisor(i,j,d) & ~ SOME [e] (CommonDivisor(i,j,e) & e > d).
PREDICATE CommonDivisor : Integer * Integer * Integer. CommonDivisor(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.
Bibliografia
- Hill, Patricia; Lloyd, John (1994). The Gödel Programming Language (em inglês). Cambridge: The MIT Press. 350 páginas. ISBN 0-262-08229-2
Ligações externas
- «Página oficial» (em inglês)
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.