ECLiPSe
Cisco Systems | |
---|---|
Initial release | 1992 |
Stable release | 7.0
/ January 22, 2018 |
Mozilla Public (MPL) | |
Website | eclipseclp |
ECLiPSe is a software system for the development and deployment of
ECLiPSe was developed until 1995 at the European Computer‐Industry Research Centre (ECRC) in
Language
The ECLiPSe language[2] 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:
A
patterns.ECLiPSe provides comprehensive facilities[2] 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
Programs may contain structured comments from which reference documentation can be generated.
Libraries
ECLiPSe provides several libraries of constraint solvers which can be used in application programs:
Arithmetic constraints over finite domains, finite set constraints, generalized propagation, interval reasoning over non-linear constraints, interfaces to external
Other libraries implement search methods like
ECLiPSe interfaces to external solvers, in particular the COIN-OR, CPLEX, Gurobi, and Xpress-MP linear and mixed-integer programming solvers,[4] and the Gecode solver library.
Compatibility libraries for ISO Prolog[5] and other Prolog dialects (C-Prolog, Quintus, SICStus, SWI-Prolog) enable the reuse of libraries written in those dialects.
Other utility libraries, including a number of popular public domain ones, are included in the distribution.
System architecture
The system includes an incremental compiler which translates source code into virtual machine code. The compiler optimizes index selection, unification order, inlining of control constructs and can take mode information into account.
The runtime system implements the
ECLiPSe components can be integrated into software via a low-level C or C++ interface, or via high-level interfaces to Java and Tcl.
See also
References
- ^ "ECLiPSe Web Site". eclipseclp.org.
- ^ S2CID 11827081.
- ISBN 978-3-540-45619-3.)
{{cite book}}
: CS1 maint: location (link - ISBN 978-3-540-32050-0.)
{{cite book}}
: CS1 maint: location (link - ^ "ECLiPSe ISO conformity declaration". eclipseclp.org.
External links
- ECLiPSe on SourceForge
- Constraint Logic Programming using ECLiPSe, textbook by Krzysztof Apt and Mark Wallace
- A Quick and Gentle Guide to Constraint Logic Programming via ECLiPSe, textbook by Antoni Niederliński
- ECLiPSE eLearning Website (with video tutorials)