Académique Documents
Professionnel Documents
Culture Documents
TD 1 : Analyse lexicale
EXERCICE 1 :
Lister les lexèmes et les unités lexicales correspondantes dans le programme suivant :
begin
else max : = j
end;
EXERCICE 2:
EXERCICE 3 :
Olfa Mouelhi |
olfa.mouelhi@esprit.tn
EXERCICE 4 :
Supposant que le compilateur d’un langage de programmation assigne l’unité lexicale suivante
OPREL pour les opérateurs relationnels : <, >, <=, >=,= et < >.
Proposer un diagramme de transition qui reconnait ce type d’unité lexicale et qui est, une fois arrivé à
des états finaux de l’automate, émet comme message : retourne (< OPREL, le lexème de l’opérateur
en question >).
EXERCICE 5 :
Supposant que dans un langage de programmation X, les noms de variables doivent être écrits en
commençant par V suivi (non obligatoirement) d’une suite quelconque de lettres écrites en majuscule
et / ou de chiffres de 1 à 5.
EXERCICE 6 :
Une commande est composée de 4 parties dont seul la première est obligatoire.
EXERCICE 7 :
1. Soit une suite de nombres encadrés par des crochets. (Ex : [4, 2, 9] ).
2. Ou bien la somme de deux expressions vectorielles.
(Ex : [3, 5, 7] + [1,4,9])
Olfa Mouelhi |
olfa.mouelhi@esprit.tn
3. Ou bien le produit d’une expression vectorielle par un nombre.
(Ex : 3*[3, 5, 7] ou [1, 4, 9]*2)
EXERCICE 8 :
1. Donner un automate fini déterministe qui reconnait dans une chaine de caractères les unités
lexicales suivantes :
Les opérateurs + et - ;
Les identificateurs en pascal composés uniquement de chiffres et de caractères ;
Les entiers non signés ;
Un sous ensemble des réels comportant syntaxiquement une suite de chiffres suivis de la
lettre e suivis d’une suite de chiffres éventuellement signés (exemple : 24e-3, 4e56)
2. Donner pour chaque unité lexicale une description régulière qui la définit.
3. Comment l’analyseur lexical décompose-t-il les chaines suivantes :
+- ;
Aa+9 ;
Ae9+9 ;
13e12 ;
6 b+a ;
EXERCICE 9 :
On considère un langage de programmation contenant uniquement les mots clés do, od, et les
identificateurs en pascal.
1. Donner un automate fini déterministe qui effectue l’analyse lexicale de ces trois types
d’unités.
2. Implémenter à la main l’analyseur lexical à partir de l’automate obtenu.
EXERCICE 10 :
1. Une commande est composée d’un nom de la commande, suivi d’une liste optionnelle
d’arguments, suivie d’une liste facultative d’options.
2. Une liste d’arguments est une suite d’arguments.
3. Une liste d’options est une suite non vide d’options encadrée par crochets. A l’intérieur de la
quelle les options sont s éparées par « , ».
4. Une option est un caractère précédé par un tiret.
5. Un argument est un identificateur, de même le nom de la commande.
Q1- Quelles sont les unités lexicales nécessaires à la description d’une commande ?
Olfa Mouelhi |
olfa.mouelhi@esprit.tn