Construction automatisée des compilateurs : Le système CIGALE
Institution:
niceDisciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
La méta-compilation est un sujet depuis longtemps exploré et les idées sont nombreuses. Mais les résultats obtenus ne sont pas encore satisfaisants. Il faut tout d'abord faire la différence entre les méta-compilateurs de langages expérimentaux et ceux de langages d'implémentation. Dans le premier cas, les performances des compilateurs générés ne sont pas importantes, et ces systèmes sont le plus souvent utilisés par des personnes qui ne souhaitent pas s'intéresser a la compilation. Dans le second cas, obtenir un compilateur peu rapide et produisant du code inefficace serait catastrophique. En effet, tous les logiciels reposant sur ce langage d'implémentation auraient des performances inacceptables, par exemple dans le monde industriel. Au contraire les utilisateurs du méta-compilateur sont compétents en compilation et souhaitent seulement que leur tache soit facilitée. Peu de travaux existent dans ce dernier cas et c'est une lacune. Le système cigale est un système d'écriture de compilateurs basé sur le formalisme bien connu des grammaires attribuées. A partir d'une description syntactico-sémantique du langage (l'aspect lexical est implicite), cigale génére un compilateur pour ce langage produisant du code em. Ce code em est ensuite traite par les différentes phases d'ack jusqu'a obtention de code efficace pour une machine réelle donnée. La description de la syntaxe du langage se fait grâce a une notation proche de la bnf; celle de la sémantique est donnée grâce à l'utilisation d'un type abstrait. Ce type abstrait n'est pas fige et l'utilisateur fournira des outils pour les aspects non prévus