C(L)P, as programming paradigm, is relatively novel, but it has its roots in a combination of programming concepts with the AI techniques of constraint solving and others from Operations Research. This provides mathematical tools of proven soundness, the possibility of programming (which offers modularity, encapsulation of data, and use of algorithms when available/advantageous), and built-in search if required. A variety of tools for C(L)P exist. Some have been described in part in the text, and the reader is referred to the seminar slides for an account of others. Also, many industrial applications developed using constraints technology.
Being a new technology, there is learning curve involved with C(L)P: the techniques and approach to using constraint programming is different from, for example, procedural or object-oriented programming. However, in C(L)P the analysis-design-implementation process is supported in a much more flexible way, and the final products can evolve as the evolution of a series of prototypes, each one being more complete and robust than those preceding it.
CLP offers clear advantages in many fields: the use of symbolic knowledge representation, possibility of writing rules and performing automatic search, together with the expressiveness of constraints and their automatic solving, allows the programmer to focus on the core of the programming task, leaving many tedious details to the implementation of the language. Quite importantly, the use of data structures in CLP languages relieves the programmer from dealing with pointers, indexes, etc., while at the same time allowing a clear view of the construction of data.
Further information can be obtained in the following articles, books, and WWW repositories:
where papers and pointers to many other pages are stored.
Look also in the bibliography section of this document.