What is Euclid
Syntax
Domains Covered
Operational Semantics
Solved Examples
Implementation
The Theory behind

Introducing Euclid:
A Logic Programming Langauge with Constraints

 

What is Euclid?

Euclid is a programming language trying to merge two different programming paradigms: (constraint) logic programming and algebraic manipulation packages. Its syntax is close to that of any CLP system but it offers many more (mathematically-oriented) data structures and domains of computation than a standard CLP system. Among these data structures are reals, real intervals, real symbolic functions and vectors as well as user-defined structures containg domain constructs.

The purpose of Euclid is to offer a schema under which knowledge that uses mathematics can be easily represented (i.e. mathematical models in physics, economics or engineering). The system is intended mainly for problem solving; the main difference with standard CLP systems is that it prefers hard calculations (like differential equations or equations with functions) to a great number of simple ones (like the simplex method dealing with real equalities/inequalities).

Theoretically Euclid is an instance of the Domain Logic Programming Scheme, a multi-domain extension to (constraint) logic programming. Formal correctness and (possible) completeness can be proven in that scheme.

A prototype currently exists running on a Sparc under SunOS UNIX.

Why is Euclid here?

Euclid has been developed in order to fill a gap in current programming systems. Its main aim was to allow for easy representation of knowledge for situations or systems that rely on mathematical models. These systems are encountered in physics, economics, engineering and in general under any discipline using mathematics as a description language. Symbolic functions offer an easy way to represent continuous change and vectors a collective way of representing complex information.

Current (constraint) logic programming systems offer limited facilities for symbolic manipulation in mathematics and algebraic manipulation packages do not offer proper programming capabilities. This is the gap that Euclid is trying to bridge.

Euclid is based on the following scheme:


	Euclid = LOGIC + MATHEMATICAL KNOWLEDGE + CONTROL
in direct accordance with R. Kowalski's view of Prolog. Mathematical constraints are used to describe situations (parts of the mathematical model) and logic to define when constraints apply.

 

© 1995 Dr. K J Dryllerakis
Please read the Legal Information concerning Euclid.
CLP(R) is a Trademark of IBM Watson Research Centre, Quintus Prolog is a trademark of Quintus Corporation, USA. SunOS is a trademark of Sun MicroSystems.