Sie sind auf Seite 1von 2

Licence 3 me anne

Compilation 2
Fiche n1
Utilisation de Lex & YACC Utilisation de Lex 1 crire un analyseur lexical laide de Lex permettant de calculer des statistiques sur le contenu dun chier texte : le nombre de mots ; le nombre de lignes ; le nombre de caractres ; la taille moyenne des mots en nombre de caractres. 2 On veut obtenir la liste des diffrents attributs utiliss dans un source au format HTML, c--d. :
1

<MABALISE attribut1="val" attribut2="3">

a. crire un analyseur lexical ralisant ce travail ; b. amliorez votre analyseur lexical permettant de travailler sur un source ou des retours la ligne sont prsents au milieu dune balise ;
1 2 3

<MABALISE attribut1="val" attribut2="3">

c. amliorez votre analyseur lexical pour sauter les parties de commentaires indiques par :
1 2

<!-- Commentaire -->

3 On veut faire de la cryptanalyse par analyse frquentielle sur un texte chiffr par un code par substitution. Pour faire ce travail, il faut disposer dune table de : de frquences de chaque caractre ; de frquences des digrammes (toute squence de deux lettres) ; de frquences des trigrammes (toute squence de deux lettres) ; crire un analyseur lexical ralisant ce travail. 4 On veut raliser la gestion dun chier de conguration, permettant : laffectation dune valeur un identiant : entier ; chane de caractre ; dinsrer des commentaires commenant par un # Exemple :
# fichier de configuration nom_fichier_intro=demarrage.txt choix_module=1 # permet de selectionner le module de calcul nom_administrateur=admin

Lensemble des associations (identiant, valeur) devront tre ajouts une liste chane. a. crire un analyseur lexical ralisant ce travail. b. Modier lanalyseur pour permettre le traitement du contenu de plusieurs chiers de conguration donns en arguments :
$ mon_analyseur config1.txt config2.txt

Resp. UE : P-F. Bonnefoi, http://ishtar.msi.unilim.fr/, Fiche n1 version du 20 janvier 2011, rdig avec ConTEXt Dont Panic !

1/2

Utilisation de Lex & YACC 5 On veut crire un interprte dexpression donne en hexadcimal et en binaire pour des tailles de valeur variable : les oprateurs implmenter sont les oprateurs boolens : OR, AND, XOR, NOT. les valeurs les valeurs binaires ou hexadcimal seront converties directement lors de leur lecture de gauche droite laide de lalgorithme de Horner. a. crivez lanalyseur lexical ralisant ce travail de conversion ; b. crivez un analyseur syntaxique ralisant les calculs. 6 On veut vrier quun programme crit en Pascal est valide :
1 2 3 4 5 7 9 10 12 13 15 16 18

PROGRAM Addition; VAR Somme : INTEGER; Nombre1, Nombre2 : INTEGER; BEGIN Write (Premier nombre ? : ); ReadLn (Nombre1); { Lecture 1er nombre } Write (Deuxime nombre ? : ); ReadLn (Nombre2); { Lecture 2me nombre } Somme := Nombre1 + Nombre2; WriteLn (La somme vaut: , Somme); END.

a. crivez un analyseur syntaxique permettant de vrier si un programme crit en Pascal est valide ou non ; b. Amliorez votre analyseur pour indiquer en cas derreur : le numro de la ligne o lerreur sest produite ; le dbut de la ligne. c. Amliorez votre analyseur pour pouvoir continuer lanalyse aprs une erreur.

Resp. UE : P-F. Bonnefoi, http://ishtar.msi.unilim.fr/, Fiche n1 version du 20 janvier 2011, rdig avec ConTEXt Dont Panic !

2/2

Das könnte Ihnen auch gefallen