25.06.2013 Views

Lex et Yacc :Calculatrice Évoluée - Blog Kerios

Lex et Yacc :Calculatrice Évoluée - Blog Kerios

Lex et Yacc :Calculatrice Évoluée - Blog Kerios

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!