Vous êtes sur la page 1sur 3

UNIVERSITE DE SOUSSE Institut Suprieur dInformatique et des Techniques de Communication Hammam Sousse

Matire : Compilation Classe : 2ING

Enseignante : Yousra Bendaly Hlaoui AU : 2011-2012

TD1 Exercice 1
Soit ={a,b} 1. Donner les expressions rgulires gnrant les langages suivants : a. b. c. d. e. L1= {w *, w contient un nombre paire de a} L2= {w *, w contient trois b conscutifs} L3= {w *, w ne contient pas trois b conscutifs} L4= {w *, w contient trois b (non ncessairement conscutif)} L5= {w *, w se termine par trois b conscutifs}

2. Reprsenter ces langages par des machines tats finis dterministes

Exercice 2
Pour crire des expressions rgulires (sur un alphabet de lettres) "en pratique" on utilise un certain nombre d'abrviations : [abc] pour a|b|c [a-z] pour a|b||z [a-zA-Z0-9] pour toutes les lettres et chiffres x? pour un x optionnel Il est galement commode d'introduire des dfinitions rgulires d1 = r1 d2 = r2 dn = rn o les di sont des identificateurs et les ri des expressions rgulires sur {d1,,di-1}. NB. Notez bien : ri ne peut pas contenir doccurrence de dj pour ji. Ecrire une dfinition rgulire pour chacun des cas suivants: a. Un identificateur est une suite de lettres ou de chiffres commenant par une lettre. b. Idem, mais en imposant la premire lettre soit une majuscule c. Chanes de lettres avec les 5 voyelles dans l'ordre a,e,i,o,u (avec rptitions possibles). Exemple : un dbut peut tre kdhaghahjeeejemdmiggki d. Nombres rels, tels que : 543 67.45 0.5 67.45E3 67.45E+3 67.45E-5 Indication : on pourra dfinir plusieurs sous langages : entiers, partie dcimale Discutez du format : acceptation du 0 en tte de partie entire, partie entire vide e. Nombres qui sont suites de chiffres ne commenant pas par 0, ou bien 0 seul.

Exercice 3
Une liste de plaques dimmatriculation franaises et mtropolitaines spares par des virgules et termine par un point est donne en entre dun programme sous forme dune chane de caractres. Une plaque dimmatriculation franaise est dfini par :

De 1Axx 999Zxx ;

(xx est le numro du dpartement). Exemple de chane : 684A44,458Z44,500B75,758V44,125F85,545Q44. 1. Donnez une expression rgulire reprsentant les chanes possibles. 2. Dessinez un automate acceptant le langage dcrit par cette expression rgulire.

Exercice 4
On souhaite crire un analyseur lexical pour le langage de commandes suivant : une commande est compose dun nom de commande, suivi dune liste optionnelle darguments, suivie dune liste facultative doptions ; une liste darguments est une suite darguments ; une liste doptions est une suite non vide doptions encadre par [ et ], lintrieur de laquelle les options sont spares par , ; une option est un caractre prcd dun tiret ; un argument est un identificateur, de mme quun nom de commande.

Exemple : macom arg1 arg2 [-a,-b] est une commande, ainsi que macom [-f] et macom. 1. Quelles sont les units lexicales ncessaires la description dune commande ? 2. Donner pour chacune dentre elles une dfinition rgulire qui la dfinit et celle qui dfinit commande.

Exercice 5
Un chiffre et une lettre sont dfinis par :

<chiffre> ::= 0 | 1 | 2 | .| 9 <lettre> ::= A | B | Z Les units lexicales <identificateur>, <nombre entier> et <nombre rel> sont dfinis par : <identificateur> ::= <lettre> <nombre entier> ::= <chiffre> <nombre rel> ::= <chiffre> , <chiffre> les autres units lexicales sont : : ; = entier reel

Faire lanalyse lexicale de chaque ligne (phrase) du programme suivant. Pour cela, on recopiera les lignes en encadrant chaque unit lexicale reconnue par lanalyseur et on identifiera les erreurs lexicales: A : reel $ B : entier ; = A 5,3,2 ; A B = 6,2 ; C = 4 ;

Exercice 6
Si lon utilise lautomate de la figure suivante pour trouver des lexmes dans un fichier dentre, combien de caractres doit-on examiner au maximum aprs la fin dun lexme pour pouvoir lidentifier ?