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
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/g0dDMvwtYFlmIEG6sqgbYfW3jzUn9rlJ6utsfQKkyE1ooXN9ivWweLrTjXLxL7D1hoBYYMaup7reSXbvLy6kbvoL.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/CW6Gc75878OQuDpsYrHUGIqmQLXW2FnyAU5K7lRz4SYMj0WIWh0scB7nmOQYxg8CGjXzFY6pt2RgCEfS7PLyOh8y.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/I1vW9DY23SH20H74GhAT7nG1LuERKgHdTQcCv6ZRQuVyl1JSZN9lV7LjdwsKNe7ZXLEWRMbtL6QWCEE7os4tdePc.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/giAQLtzPaR73sD7zQ0VLgPRvwbdpE06JKyD1FMKZ0by720vHjySttsH0x2eUDXTYaNSt2iQrRfq4ljKI6F9Oigi4.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/5bbR8g5AXAeQ5dX0vXkjhric7lWRr4nTAfwcxuA8WcDIwVotc5CSDZqdNBUA9jWEdC4clI8SdV9LFXHjzxt84ssA.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/VVSwiK0H4GPPmh5LYiTFYqRUxsZg9y59p8rAvyNVggeOn8sdFomlGp8GUFeOtkdynlDm65livmaXeflW8ye1fKZH.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/1FGMfaPed9VG3oclYww7c0rj22f8Z4b6L1SI6QJkyQqstqBwmiwscWftiNsAtcYXHRmBLkwxGgJfdq8JYhQGvxd4.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/ZVRacLZi1074OLGRjyuDPB5G230i0Jfl1LqGQr9Jj9AME3qI0agwtL9t3zzX5By6vZiSpLzBo9h8pTF6pJuxny58.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/AoeyBY88uiRYFShv23JJ4WfXwl9QcA2MkbbyWYZ8osJA63xXjKd7qw8ooLVhreDZv5pO3lv87BjUjxdFLVAUnSmF.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/eRd9YUBSpgJ9gEXZnF98bM9dyzHzpJtDxPYLpHF2IPDny1I4o3bTKYO29RvJZVC2cBmqSC2x61PTFlpUB75dhZ3l.png)
-
20
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 11, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.2435MB