This tutorial provides an introduction to programming in ECLiPSe. It assumes a broad understanding of constrained optimisation problems, some background in mathematical logic and in programming languages. The tutorial tries to cover most of the basic aspects of using ECL^{i}PS^{e}: underlying concepts, the programming language, library functionality and interaction with the system.
A few topics have been left out of this tutorial and are covered elsewhere: The Embedding Manual explains how to embed ECL^{i}PS^{e} applications into other software environments, and the Visualisation Manual describes the use of the constraint visualisation facilities. All the features described in this tutorial are documented in more detail in the ECL^{i}PS^{e} User Manual, Constraint Library Manual and in particular the Reference Manual. A methodology for developing large scale applications with ECL^{i}PS^{e} is presented in the document Developing Applications with ECL^{i}PS^{e} by Simonis.
For an informal introduction to combinatorial optimisation and constraint programming see the article Constraint Programming by Wallace. The most closely related books on the subject are the textbook Programming with Constraints by Marriott and Stuckey [17] (which contains ECL^{i}PS^{e} examples), and the seminal book Constraint Satisfaction in Logic Programming [27] by Van Hentenryck.
A small selection of textbooks on related subjects includes: Foundations of Constraint Satisfaction by Tsang [25], Model Building in Mathematical Programming by Williams [30] and Prolog Programming for Artificial Intelligence by Bratko [6].
