Pat's picture


Personal Info



Research Degrees Admissions Tutor





School of Computing

The Gödel Programming Language

Gödel is a declarative, general-purpose programming language in the family of logic programming languages. It is a strongly typed language, the type system being based on many-sorted logic with parametric polymorphism. It has a module system. Gödel supports infinite precision integers, infinite precision rationals, and also floating-point numbers. It can solve constraints over finite domains of integers and also linear rational constraints. It supports processing of finite sets. It also has a flexible computation rule and a pruning operator which generalises the commit of the concurrent logic programming languages. Considerable emphasis is placed on Gödel's meta- logical facilities which provide significant support for meta-programs that do analysis, transformation, compilation, verification, debugging, and so on.

Here is an example Gödel program.

There is a book on the language:

P.M. Hill & J.W. Lloyd. The Gödel Programming Language. MIT Press, 1994, ISBN 0-262-08229-2.

Gödel with Generic (Parametrised) Modules

Gödel has a simple module system. There is an experimental version in goedel2.tar.Z that supports parametrised modules. This system includes:
  1. the source code of the Bristol Gödel system extended at Leeds to include parametrised modules;
  2. README file explaining how to use the extended module system;
  3. examples demonstrating the parameterised modules;
  4. the user manual and installation instructions supplied with the Bristol implementation;
  5. a paper on the ground representation in Gödel;
  6. the Gödel library, and
  7. example programs supplied with the Bristol implementation.
SICStus Prolog version 2.1 #6 is required to compile the experimental Gödel system from the source code. Note that to make the new system an existing Goedel system is not required. This system with parametrised modules is, in fact, incompatible with the main versions.
Patricia Hill

Home | Personal Info | Research | Papers | Research Degrees Admissions Tutor | Gödel | Interests | People | Links