ECLiPSe

ECLiPSe is a software system for the development and deployment of constraint logic programming applications, e.g., in the areas of optimization, planning, scheduling, resource allocation, timetabling, transport, etc.

Beyond the basic Prolog data types, the following are available: strings, unlimited precision integer and rational numbers, and floating point intervals.

These include declarative delay-clauses as well as primitives for meta-programmed control like explicit goal suspension, flexible triggering facilities and execution priorities.

Together with the attributed variable data type, this is the key to many extensions to the basic logic programming language, including all constraint-based functionality.

The runtime system implements the virtual machine, automatic memory management with garbage collection of stacks and dictionary, event handling and data-driven execution.