Projet Loco

previous up next contents
Précédent : Présentation générale et objectifs Remonter : Projet LOCO, Programmation en LOgique Suivant : Grands domaines d'application



Fondements scientifiques

Aspects langages



Participants : Philippe Codognet , Jean-Hugues Réty , Nicolas Romero , Nadine Richard , Arnaud Lallouet


Mots-clés : programmation par contraintes, sémantique, implantation, compilation, satisfaction de contraintes, concurrence, programmation en logique, langage de programmation, modèle d'exécution, parallélisme de données, monde virtuel, VRML


Les aspects langages concurrents avec contraintes ont plus particulièrement été étudiés. Ils permettent de combiner les avantages des deux approches, c'est-à-dire d'une part la possibilité de raisonner (symboliquement) et calculer (numériquement) sur des domaines spécifiques (PLC) et d'autre part la possibilité d'avoir un contrôle dynamique des calculs dirigé par les données (concurrence) et non plus dirigé par les instructions du programme.

L'idée fondamentale des langages concurrents avec contraintes est l'utilisation de contraintes pour étendre les mécanismes de synchronisation et de contrôle des langages logiques concurrents. Ainsi, différents agents (processus) communiquent et se synchronisent par l'intermédiaire d'un ensemble de contraintes global, où l'information s'accumule de manière monotone au fil du temps. Chaque agent peut soit ajouter une nouvelle contrainte (opération Tell), soit demander si une certaine contrainte est vraie dans (i.e. impliquée par) l'ensemble global (opération Ask). L'opération Tell correspond à l'ajout classique d'une contrainte en PLC. La synchronisation s'effectue par une opération Ask bloquante : si l'on ne peut décider si la contrainte est vraie ou fausse dans l'ensemble global de contraintes (i.e. il faut attendre d'avoir plus d'informations), l'agent est suspendu jusqu'à ce que d'autres agents ajoutent (Tell) les contraintes suffisantes pour décider.

Notre travail dans le domaine des langages concurrents avec contraintes a porté essentiellement sur l'extension du cadre CC aux systèmes distribués, par la définition de nouvelles primitives de communication (par message) et d'un cadre sémantique adéquat.

Aspects domaines de contraintes et algorithmes de résolution



Participants : Philippe Codognet , Daniel Diaz , Yan Georget , Frédéric Benhamou , Frédéric Goualard , Laurent Granvilliers , Nicolas Romero


Mots-clés : programmation par contraintes, sémantique, implantation, compilation, satisfaction de contraintes, modèle d'exécution,


Parmi les différents domaines de calcul étudiés en PLC, les domaines finis semblent être les plus prometteurs, car ils sont très utiles dans de nombreuses applications industrielles comme par exemple les problèmes combinatoires, l'ordonnancement, cutting-stock, la simulation de circuits, le diagnostic, l'aide à la décision ou même les problèmes booléens.

Nos travaux se poursuivent sur trois axes :

De plus, dans la continuité de nos travaux sur la résolution de contraintes hétérogènes et la résolution de contraintes numériques non-linéaires, nous nous sommes principalement intèressés aux problèmes suivants:

1.
coopération de méthodes symboliques et numériques;
2.
coopération de différents niveaux de consistance locale;
3.
amélioration des stratégies de propagation;
4.
étude d'un modèle concurrent de la coopération de solveurs;
5.
implantation d'une extension de clp(FD) pour le traitement de contraintes non-linéaires par des techniques de coopération de solveurs basé sur l'arithmétique d'intervalles.

Résumé : Les faits marquants cette année ont été:


Aspects environnements



Participants : Pierre Deransart , Christophe Aillaud , Frédéric Benhamou , Michel Bergère , Philippe Codognet , Daniel Diaz , Gérard Ferrand , Frédéric Goualard , Laurent Granvilliers , François Le Berre , Alexandre Tessier , Pascal Chambre , Bernard Malfon , Pierre Deransart , Ali Ed-Dbali , José de Siqueira , Khaled El Qorchi


Mots-clés : programmation par contraintes, sémantique, spécification formelle, débogage, Prolog, environnement de programmation, grammaire attribuée, interprétation abstraite, vérification de programme


Une caractéristique importante de la PLC est de permettre une approche uniforme du langage et de son environnement. En effet, les domaines de contraintes peuvent être utilisés à la fois pour décrire le programme et ses propriétés. L'aspect très « déclaratif » de la programmation logique avec contraintes permet de mettre en pratique des idées développées dans le cadre de la programmation en logique traditionnelle et sa réalisation « Prolog », qui n'avaient pu trouver d'applications réelles, faute d'être suffisamment déclaratives.

Notre approche vise alors à surmonter deux difficultés majeures : à savoir, d'une part, comment dominer la complexité des calculs développés dans des systèmes de contraintes hétérogènes avec des outils de mise au point adaptés; et d'autre part, comment consigner dans un document unique l'ensemble de l'expérience de développement et de maintenance acquise pour une application donnée (expérience résultant de sessions d'essais et de tentatives de validation en particulier). Etayés par des travaux théoriques sur la validation, le débogage et la propagation, deux projets visent à explorer et proposer des solutions pratiques : le projet européen DiSCiPl ([*], [*]) et du projet HyperPro ([*], [*]).

Résumé : Les faits marquants cette année ont été:




previous up next contents Précédent : Présentation générale et objectifs Remonter : Projet LOCO, Programmation en LOgique Suivant : Grands domaines d'application