next up previous
Next: Transformation des grammaires Up: Travaux Théoriques Previous: Rappel sur la

Présentation des travaux théoriques

 

J'ai volontairement pris le choix d'une présentation très informelle de mes travaux de recherche, pour les deux raisons suivantes. D'une part, mes travaux portent sur un large sous-ensemble des problèmes rencontrés en grammaires attribuées, et dont la formalisation demanderait une trop longue présentation. La deuxième raison, qui est d'une certaine manière une conséquence de ce qui précède, est que le nombre impressionnant de résultats a souvent rebuté les utilisateurs potentiels des GA. En effet, l'un des problèmes majeurs dans ce domaine est l'efficacité du programme qui exécute la spécification d'entrée (les évaluateurs d'attributs). La théorie des GA donne tout un ensemble de résultats théoriques sur ce problème, mais sans pour autant fournir une solution ``idéale''. Ainsi, lors de l'application de ces résultats, c'est-à-dire de la réalisation du constructeur (générateur d'évaluateur d'attribut) qui engendre le dit programme exécutable, il s'est avéré assez difficile de trouver un bon compromis entre les différentes solutions. En effet, à chaque type de constructeur, le compromis interne à ce dernier correspond souvent pour les utilisateurs, à la compréhension d'un de nos problèmes qui n'est pas forcément d'un abord facile. Ainsi les utilisateurs ont été plutôt sensibilisés aux problèmes internes de la construction qu'aux qualités intrinsèques des GA, sans pour autant se voir proposer une solution satisfaisante.

La finalité de mes travaux a été d'essayer de remédier à cela. En effet, nous sommes convaincus que les GA, par leurs qualités propres, en particulier la facilité d'écriture, méritent une plus large diffusion. Ainsi nous sommes nous placés dans le cadre de l'utilisation pratique, sur des exemples réalistes, et non plus dans un cadre abstrait (théorique). Sous cette hypothèse, nous montrons, à travers la réalisation d'un nouveau constructeur, qu'il existe une solution satisfaisante. Ainsi les utilisateurs potentiels pourront enfin apprécier et juger des qualités de la programmation en GA, sans pour cela être obligés de supporter toute la complexité de la construction, et parfois de se plier à des contraintes éventuelles. Pour construire cette solution, nous avons étudié un vaste sous-ensemble de problèmes rencontrés dans la théorie des GA, réexaminé les résultats en se plaçant résolument dans notre cadre, et proposé des approches différentes ou des améliorations significatives. L'ensemble de ces travaux prend encore plus de valeur dans leur juxtaposition. Pour nous, la réalisation de ce constructeur et son utilisation était donc un début de ``preuve'' de la validité de notre approche.

Les deux problèmes importants que l'on rencontre dans la génération des évaluateurs sont les suivants: les évaluateurs d'attributs engendrés sont en général très gourmands en place mémoire, et le temps de construction de ces derniers peut être très important. Il faut bien admettre que ces deux points ont souvent été un frein important à l'utilisation des GA, surtout sur des données de taiile importante. En effet, dans la théorie des grammaires attribuées, les résultats théoriques de complexité sont souvent exprimés dans le pire des cas. Mes travaux ont montré que ces résultats d'explosion combinatoire restent confinés à des cas pathologiques de GA, et qu'en pratique sur des textes importants, ces deux points noirs n'apparaissent pas, ou restent dans des limites très raisonnables et en tout cas très loin des bornes définies par la théorie.



next up previous
Next: Transformation des grammaires Up: Travaux Théoriques Previous: Rappel sur la



Didier Parigot
Mon Apr 7 11:02:46 MET DST 1997