Lex et Yacc :Calculatrice Évoluée - Blog Kerios
Lex et Yacc :Calculatrice Évoluée - Blog Kerios
Lex et Yacc :Calculatrice Évoluée - Blog Kerios
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Université de Rouen Compilation<br />
U.F.R des Sciences <strong>et</strong> Techniques Master 1 GIL ITA SSI<br />
hadrien.jeanne@univ-rouen.fr jean-gabriel.luque@univ-rouen.fr ludovic.mignot@univ-rouen.fr<br />
Proj<strong>et</strong> <strong>Calculatrice</strong> <strong>Évoluée</strong><br />
<strong>Lex</strong> <strong>et</strong> <strong>Yacc</strong> :<strong>Calculatrice</strong> <strong>Évoluée</strong><br />
Nombre d’étudiants par groupe : 2<br />
Date limite d’envoi par mail : 10 Janvier 2011<br />
À envoyer à votre chargé de TP<br />
Le but de ce proj<strong>et</strong> est d’écrire un analyseur perm<strong>et</strong>tant de simuler une calculatrice évoluée. À partir<br />
d’un fichier texte écrit dans un langage dont vous proposerez la syntaxe, l’analyseur proposé doit être<br />
capable de traiter les instructions décrites. Vous proposerez, en plus de la syntaxe de votre langage, une<br />
grammaire perm<strong>et</strong>tant d’analyser sémantiquement les fichiers à traiter.<br />
Vous implanterez, par le biais d’options, au moins deux méthodes d’affichages différentes : une<br />
méthode perm<strong>et</strong>tant d’afficher les valeurs de chacune des variables utilisées dans le fichier d’entrée en<br />
fin d’analyse, ainsi qu’une méthode d’affichage instruction par instruction (voir exemple ci après).<br />
Pensez ainsi à gérer correctement les erreurs (syntaxiques <strong>et</strong> sémantiques) <strong>et</strong> n’oubliez pas de définir<br />
les associativités des opérateurs en cas de conflits.<br />
L’évaluation de ce proj<strong>et</strong> portera sur le fonctionnement (bien évidemment), mais aussi sur la concision<br />
des expressions rationnelles utilisées, la puissance de votre syntaxe, ainsi que sur les fonctionnalités<br />
proposées (quelques idées : implantation des fonctions de math.h, gestion de polynômes, typage de<br />
variables, nombres complexes, instructions évoluées de test <strong>et</strong> de boucles, <strong>et</strong>c...).<br />
Vous devrez envoyer une archive contenant vos analyseurs lexicaux <strong>et</strong> sémantiques, un exemple de<br />
fichier texte exemple.txt écrit selon votre syntaxe, un fichier texte resultat.txt contenant le résultat d’une<br />
exécution de votre analyseur sur le fichier exemple.txt, ainsi qu’un rapport NomsDuBinome.pdf explicant<br />
vos choix dans la syntaxe ainsi que le fonctionnement de votre analyseur.<br />
Vous trouverez ci-après un exemple de fichier source (avec les lignes numérotées) ainsi que les deux<br />
types d’affichages attendus.<br />
1- x:= 3<br />
2- y:= x+7<br />
3- z:= x+y<br />
4- SI x
Université de Rouen Compilation<br />
U.F.R des Sciences <strong>et</strong> Techniques Master 1 GIL ITA SSI<br />
hadrien.jeanne@univ-rouen.fr jean-gabriel.luque@univ-rouen.fr ludovic.mignot@univ-rouen.fr<br />
Proj<strong>et</strong> <strong>Calculatrice</strong> <strong>Évoluée</strong><br />
5- DEBUT DE BOUCLE<br />
6- i= 0, x=11<br />
7- i= 1, x=12<br />
8- i= 2, x=13<br />
9- i= 3, x=14<br />
10- i= 4, x=15<br />
11- i= 5, x=16<br />
12- i= 6, x=17<br />
13- i= 7, x=18<br />
14- i= 8, x=19<br />
15- i= 9, x=20<br />
16- i= 10, x=21<br />
17- FIN de BOUCLE<br />
18- RESULTATS : x= 21, y= 10, z= 13, i= 10<br />
Avec une méthode d’affichage en fin d’analyse, vous devez produire un affichage :<br />
1- RESULTATS : x= 21, y= 10, z= 13, i= 10