Constraint logic programming (C.L.P.) is a new type of programming that we believe is destined for great success: the speed of design and implementation it allows are decisive assets in today's competitive world. Its origins date back to the 1980s, when authors of logic programming languages such as Prolog realized that a "calculation" could be considered as a demonstration of the satisfiability (existence of solutions) of a system of equations in the broadest sense.
The main tools available on the market, such as Prolog III, CHIP (Constraint Handling in Prolog) and Ilog-Solver, date from the early 1990s. Although this type of programming is still relatively unknown in the IT industry, there has been a boom in the number of companies mastering it. European and, in particular, French scientists and industrialists play a predominant role in this sector, which has not yet attracted as much attention from North Americans. It is wickedly said that this is due to the fact that programmers on the other side of the Atlantic appreciate mathematics less than their European colleagues. This may be true, but it is also true that Americans are extremely quick to commit to cutting-edge technologies once their interest has been recognized...
This article is organized as follows. The first part is an introduction to the essential principles of PLC. The second is devoted, in particular, to the easily understood constraints available in the Prolog III language. The third is devoted to constraints on finite domains, which are the focus of many applications, and to constraints on intervals, which are becoming increasingly important. The conclusion is intended to provide an overview of the current situation and possible future prospects.