TDs en th´eorie de compilation TD1 Ann´ee universitaire : 2012-2013
aa p r i n t f ( ” 1 ” ) ;
a p r i n t f ( ” 2 ” ) ;
ab p r i n t f ( ” 3 ” ) ;
Quelles sont les sorties produites lorsqu’on applique l’algorithme maxiaml munch pour la
chaine ”aab”?
4. Lenteur des scanners
Soient les Tokens d´efinis par les expressions r´eguli`eres du listing ci-dessous
” photo ” {p r i n t f (”PHOTO” ) ; }
”photosynthese” {p r i n t f (”PHOTOSYNTHESE” ) ; }
” . | \ n” {p r i n t f (”X” ) ; }
(a) Quelles sont les sorties produites pour l’entr´ee ”photosynthetiser” ?
(b) D´eduire le nombre de caract`eres scann´es.
(c) Soient les deux Tokens d´efinis par les expressions r´eguli`eres du listing ci-dessous
a∗b{p r i n t f ( ” 1 ” ) ; }
a{p r i n t f ( ” 2 ” ) ; }
Supposons le langage d´efini par L={a{n}, o`u n > 1}. Quel est le nombre de caract`eres
scann´es ?
5. Analyseurs invers´es
L’algorithme d’analyse introduit dans le cours est bas´e sur une lecture de gauche `a droite d’une
entr´ee. L’objectif de cet exercice est de r´ealiser un analyseur qui r´ealise la lecture de droite `a
gauche.
(a) Modifier l’algorithme permettant de convertir l’expression r´eguli`ere en AFND dans le but
d’accpeter les chaˆınes invers´ees.
(b) G´enerer un ensemble d’expressions r´eguli`eres et une chaine de caract`eres o`u l’analyse de
gauche `a droite donne des Tokens diff´erent de l’analyse de droite `a gauche.
Page 2