Hubbry Logo
search
logo
ECLiPSe
ECLiPSe
current hub

ECLiPSe

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
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. It is also suited for teaching most aspects of combinatorial problem solving, e.g., problem modeling, constraint programming, mathematical programming, and search techniques. It contains constraint solver libraries, a high-level modeling and control language (a superset of Prolog), interfaces to third-party solvers, an integrated development environment and interfaces for embedding into host environments.

ECLiPSe was developed until 1995 at the European Computer‐Industry Research Centre (ECRC) in Munich, and then until 2005 at the Centre for Planning and Resource Control at Imperial College London (IC-Parc). It was purchased by Cisco Systems. In September 2006, it was released as open source software under an equivalent of the Mozilla Public License, and is now hosted on SourceForge

The ECLiPSe language is largely backward-compatible with Prolog and supports different dialects, including ISO Prolog. Due to being declarative, it can be used both as a modelling language to describe problems, and as a general purpose programming language.

Beyond the basic Prolog data types, the following are available: strings, unlimited precision integer and rational numbers, and floating point intervals. Array syntax and structures with field names are also supported and especially useful in constraint modelling.

A logical iteration construct eliminates the need for most simple recursion patterns.

ECLiPSe provides comprehensive facilities to implement data-driven control behaviour. 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 system calls user-definable event handlers when it encounters attributed variables in certain contexts, e.g. unification.

The module system controls the visibility of predicates, non-logical stores, source transformations and syntax settings. Module interfaces can be extended and restricted, and modules written in different language dialects can be mixed within one application.

Programs may contain structured comments from which reference documentation can be generated.

See all
User Avatar
No comments yet.