next up previous contents
suivant: Forme BNF de la monter: Grammaire précédent: Grammaire   Table des matières

Raisons de la modification des spécifications du sujet

Une grammaire nous était proposée dans le sujet du projet, mais nous l'avons assez largement modifiée, et ce pour plusieures raisons.
Initialement, une session d'utilisation était découpée en deux phases distinctes : une première pour traiter un fichier contenant des règles, et la seconde pour traiter des questions entrées directement au clavier. De plus, deux analyseurs syntaxiques étaient proposés, un pour chaque phase. Le premier était généré à l'aide de Yacc, et le second était directement écrit en langage C. Cette dichotomie ne nous paraissait pas satisfaisante, d'autant plus que ces deux analyseurs avaient de forts points communs. D'autre part, nous voulions pouvoir alterner librement les définitions de règles et les questions. Nous avons donc tout regroupé en un seul analyseur syntaxique répondant à ces nouvelles contraintes. Il était dès lors nécessaire d'adapter la grammaire. Cependant, du fait du fonctionnement de Yacc, il fallait alors, dans un premier temps, choisir entre la lecture d'un fichier et l'utilisation du clavier. Du fait des spécificités d'Unix, le choix était tout trouvé : l'analyseur travaille à partir de son entrée standard, et c'est une couche supérieure qui se charge d'envoyer vers cette entrée le contenu d'un fichier ou ce qui est saisit au clavier. Pour plus de détails à ce sujet, on se reportera au troisième chapitre.
Nous avons en outre supprimé le symbole non terminal "constante". En effet, que ce soit pour la compilation ou pour l'interprétation, une constante ne se distinguait en rien d'un foncteur n'ayant pas d'argument. Cette constatation a donc été prise en compte dans notre grammaire où seul le symbole non terminal "foncteur" subsiste. Il est suivi d'une suite de termes entre parenthèses (foncteur "classique"), ou non (constante).
next up previous contents
suivant: Forme BNF de la monter: Grammaire précédent: Grammaire   Table des matières
Alexandre DAGAN
2000-07-07