Resp. UE : P-F. Bonnefoi, http://ishtar.msi.unilim.fr/, « Fiche n°1 » version d

Resp. UE : P-F. Bonnefoi, http://ishtar.msi.unilim.fr/, « Fiche n°1 » version du 20 janvier 2011, rédigé avec ConTEXt – Don’t Panic ! 1/2 Licence 3ème année Compilation 2 Fiche n°1 Utilisation de Lex & YACC Utilisation de Lex Écrire un analyseur lexical à l’aide de Lex permettant de calculer des statistiques sur le contenu 1 – d’un fichier texte : − le nombre de mots ; − le nombre de lignes ; − le nombre de caractères ; − la taille moyenne des mots en nombre de caractères. On veut obtenir la liste des différents attributs utilisés dans un source au format HTML, c-à-d. : 2 – 1 <MABALISE attribut1="val" attribut2="3"> a. écrire un analyseur lexical réalisant ce travail ; b. améliorez votre analyseur lexical permettant de travailler sur un source ou des retours à la ligne sont présents au milieu d’une balise ; 1 <MABALISE 2 attribut1="val" 3 attribut2="3"> c. améliorez votre analyseur lexical pour sauter les parties de commentaires indiquées par : 1 <!-- Commentaire 2 --> On veut faire de la cryptanalyse par analyse fréquentielle sur un texte chiffré par un code par 3 – substitution. Pour faire ce travail, il faut disposer d’une table de : − de fréquences de chaque caractère ; − de fréquences des digrammes (toute séquence de deux lettres) ; − de fréquences des trigrammes (toute séquence de deux lettres) ; Écrire un analyseur lexical réalisant ce travail. On veut réaliser la gestion d’un fichier de configuration, permettant : 4 – − l’affectation d’une valeur à un identifiant : ⋄ entier ; ⋄ chaîne de caractère ; − d’insérer des commentaires commençant par un « # » Exemple : # fichier de configuration nom_fichier_intro=demarrage.txt choix_module=1 # permet de selectionner le module de calcul nom_administrateur=admin L’ensemble des associations (identifiant, valeur) devront être ajoutés à une liste chaînée. a. Écrire un analyseur lexical réalisant ce travail. b. Modifier l’analyseur pour permettre le traitement du contenu de plusieurs fichiers de confi- guration donnés en arguments : $ mon_analyseur config1.txt config2.txt Resp. UE : P-F. Bonnefoi, http://ishtar.msi.unilim.fr/, « Fiche n°1 » version du 20 janvier 2011, rédigé avec ConTEXt – Don’t Panic ! 2/2 Utilisation de Lex & YACC On veut écrire un interprète d’expression donnée en hexadécimal et en binaire pour des tailles 5 – de valeur variable : − les opérateurs à implémenter sont les opérateurs booléens : OR, AND, XOR, NOT. − les valeurs les valeurs binaires ou hexadécimal seront converties directement lors de leur lecture de gauche à droite à l’aide de l’algorithme de Horner. a. Écrivez l’analyseur lexical réalisant ce travail de conversion ; b. Écrivez un analyseur syntaxique réalisant les calculs. On veut vérifier qu’un programme écrit en Pascal est valide : 6 – 1 PROGRAM Addition; 2 VAR 3 Somme : INTEGER; 4 Nombre1, 5 Nombre2 : INTEGER; 7 BEGIN 9 Write (’Premier nombre ? : ’); 10 ReadLn (Nombre1); { Lecture 1er nombre } 12 Write (’Deuxième nombre ? : ’); 13 ReadLn (Nombre2); { Lecture 2ème nombre } 15 Somme := Nombre1 + Nombre2; 16 WriteLn (’La somme vaut: ’, Somme); 18 END. a. Écrivez un analyseur syntaxique permettant de vérifier si un programme écrit en Pascal est valide ou non ; b. Améliorez votre analyseur pour indiquer en cas d’erreur : ⋄ le numéro de la ligne où l’erreur s’est produite ; ⋄ le début de la ligne. c. Améliorez votre analyseur pour pouvoir continuer l’analyse après une erreur. uploads/Management/ compilation-2-td-1-2010-2011 1 .pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 11, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.2435MB