Les contraintes en programmation logico-fonctionnelle : application au langage miles
Institution:
Paris 6Disciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
Depuis les annees 80 on s'est souvent penche sur l'integration des styles de programmation en logique et fonctionnelle. Le langage miles est le resultat d'une telle fusion. Il est obtenu en ajoutant a un noyau lisp les concepts d'un langage de programmation en logique: le non-determinisme, les variables logiques et l'unification. L'ajout de variables logiques dans un langage applicatif fait apparaitre de nouveaux objets: les expressions gelees. Dans cette these nous montrons comment celles-ci permettent, grace a l'unification, de definir des contraintes semblables a celles des clp. De plus, nous voyons comment on peut definir, en miles, un systeme de resolution gerant les contraintes numeriques du langage. Dans un premier temps nous nous focalisons sur les contraintes d'egalite. Nous etudions les algorithmes traditionnels de resolution de systemes lineaires et montrons comment ils doivent etre modifies pour permettre le traitement de contraintes d'egalite sur les reels. Nous montrons comment nous pouvons implanter ces algorithmes en miles pour obtenir un langage de programmation logico-fonctionnelle autorisant une utilisation active des contraintes d'egalite numeriques. Nous nous interessons ensuite aux contraintes d'inegalite numeriques du langage. Apres avoir montre comment une version modifiee de l'algorithme du simplex pouvait etre utilisee pour resoudre un systeme d'inequations lineaires de maniere incrementale, nous en proposons une definition en miles pour gerer les contraintes d'inegalite. Muni de ces deux systemes de resolution le langage miles devient un langage de programmation logico-fonctionnelle avec contraintes sur les reels. Il permet d'adopter les styles de programmation en logique avec contraintes et fonctionnel