1989 : Prolog III
l'avènement de la programmation par contraintes

Réalisant qu'en Prolog II, les égalités et les non-égalités entre termes étaient une forme particulière de contraintes, l'idée d'une généralisation à des langages de contraintes arbitraires commence à s'imposer à partir du milieu des années 80 (cf. les travaux théoriques de J-L. Lassez, J. Jaffar et M. Maher au centre d'IBM de Yorktown).

Les premières implantations du nouveau concept de « Programmation Logique avec Contraintes » seront Prolog III, CLP(R) et CHIP.

"Le langage de programmation Prolog III est une extension de Prolog au niveau de ce qu'il a de plus fondamental, le mécanisme d'unification. Il intègre dans ce mécanisme un traitement plus complet des arbres et des listes, un traitement numérique en précision infinie et un traitement de l'algèbre de Boole à deux valeurs."

Listes, nombres rationnels et booléens sont des types d'arbres particuliers en fonction desquels la machine Prolog doit résoudre de manière incrémentielle les contraintes introduites par les clauses du programme. Pour traiter les inéquations linéaires par exemple, Prolog III a recours à un algorithme du simplexe.

Téléchargements

suite


URL English version