![]()
Précédent : Typage de Prolog Remonter : Les langages de
programmation logique Suivant : Implantation des langages
fonctionnels
Participants : Olivier Ridoux
Nous étudions l'application de
Prolog à des problèmes variés. L'objectif est d'explorer les
possibilités du langage et de son implantation. Après le
traitement de la langue naturelle et la reconnaissance de
documents, nous avons abordé le domaine des manipulations
automatiques de grammaires à attributs, et particulièrement leurs
transformations [18].
Transformer les grammaires est utile, entre autres, pour les rendre compatibles avec des stratégies d'analyse incomplètes. Il est alors fréquent que la présentation la plus favorable au développement sûr et rapide d'une grammaire par un programmeur ne soit pas la présentation la plus favorable à sa mise en oeuvre dans un analyseur. C'est par exemple le cas si la stratégie retenue est celle de la descente récursive. Les transformations de grammaires pures sont largement décrites, mais pas celles des grammaires à attributs, alors que ce sont elles qui sont vraiment utilisées.
Nous avons d'abord formalisé quelques transformations de
grammaires à attributs, puis nous les avons implémentées en
Prolog. Le système a
déjà permis de traiter des grammaires décrivant de vrais langages
comme Prolog Standard. Les transformations formalisées sont le
dépliage, l'élimination de la récursivité gauche et la
factorisation à gauche. Elles sont particulièrement liées à
l'analyse par descente récursive. Nous projetons d'en mettre au
point pour d'autres stratégies d'analyse.