previous up next contents
Précédent : Cadre logique pour Remonter : Cadre logique pour Suivant : Validation de programmes

Logiciel ELAN

Participants : Peter Borovanský, Claude Kirchner, Hélène Kirchner, Pierre-Etienne Moreau, Marian Vittek

ELAN est un cadre logique qui permet de formaliser, sur une base uniforme, différentes logiques et différents résolveurs de contraintes. La logique de réécriture introduite par J. Meseguer (SRI, Menlo Parc) est à la base de la sémantique du mécanisme d'évaluation d'ELAN. Les règles peuvent être conditionnelles et sont enrichies par une construction d'affectations locales. Nous avons ajouté à ce formalisme une notion de stratégie. Un système de calcul est une théorie de la logique de réécriture qui est enrichie par un ensemble de stratégies décrivant des calculs et contrôlant l'application des règles de réécriture. Elles sont utilisées à la fois pour décrire le déroulement des preuves menant à un résultat, et pour restreindre l'espace de recherche. Les stratégies s'expriment dans un langage d'expressions construites à partir de noms de règles et de stratégies, par l'opérateur de concaténation, les opérateurs d'itération et les opérateurs de choix qui permettent une gestion relativement fine de l'exploration de l'arbre de recherche [8].

Notre effort a porté cette année sur le développement de programmes non-triviaux pour expérimenter l'environnement.

Dans [29], nous avons montré comment prototyper la complétion avec contraintes en utilisant ELAN et les systèmes de calcul. Ce travail peut être vu comme un premier outil de validation de programmes équationnels implanté en ELAN. Nous avons mis à profit le langage de stratégies d'ELAN pour expérimenter différentes stratégies de simplification et leur interaction avec la déduction d'égalités contraintes.

Un autre exemple conséquent développé en ELAN est un algorithme d'unification d'ordre supérieur basé sur le -calcul avec substitutions explicites. Il implante les travaux présentés dans [23] et permet d'exprimer la recherche des solutions d'un problème d'unification d'ordre supérieur dans un cadre du premier ordre [19].

Un compilateur pour ELAN est en cours de réalisation. Il produit un programme C à partir d'un système de réécriture. Ce programme peut être ensuite compilé par un compilateur standard de C afin d'être exécuté.

Le compilateur d'ELAN a été déjà testé sur plusieurs exemples significatifs où il a donné des résultats extrêmement prometteurs.


previous up next contents
Précédent : Cadre logique pour Remonter : Cadre logique pour Suivant : Validation de programmes