You are mixing two different things: Prolog and Constraint Logic Programming.
<P>Prolog was invented before Constraint Programming: pure Prolog languages do not support Constraint Programming. And it is possible to solve (not very efficiently) most problems in a purely logical manner.
<P>Since then, most Prolog languages have decided to integrate constraints solvers over integers, sets, floating numbers. These solvers are usually written in a low level language.
<P>Then, people realized that they mainly used the constraint programming part and not the logical features. Thus, they decided (and it is the main trend now) to develop constraints solvers as libraries for various host languages (C, C++, Java, ...).
<P>They are many reasons for that :
- it is easier to integrate in other applications,
- it is more convenient for writing global constraints (you can not write an efficient global constraint in Prolog so usually you end up writing your global constraint in C if the Prolog itself was written in C)
<P>BTW: I am myself a Prolog lover (I developed some Prolog extensions during my PhD), but I can't agree with your arguments. |