You are on page 1of 2

Devoir, analyse syntaxique Novembre 96 1 Ensembles premier, suivant

Exercice 1.1 On donne la grammaire suivante: 1 <programme > d ebut <liste instructions> fin 2 <liste instructions > <instruction> <n liste instr> 3 <n liste instr > <instruction> <n liste instr> 4 <n liste instr > 5 <instruction > ID := <expression> ; 6 <instruction > lire ( <liste id> ); 7 <instruction > e crire ( <liste expr> ); 8 <liste id > ID <n liste id> 9 <n liste id > ,ID <n liste id> 10 <n liste id > 11 <liste expr > <expression> <n liste expr> 12 <n liste expr > , <expression> <n liste expr> 13 <n liste expr > 14 <expression > <expr simple> <n expr simple> 15 <n expr simple > <op> <expr simple> <n expr simple> 16 <n expr simple > 17 <expr simple > ( <expression> ) 18 <expr simple > ID 19 <expr simple > INT 20 <op > + 21 <op > Calculer les ensembles premier et suivant pour chacun des non terminaux de la grammaire. Exercice 1.2 Calculer les ensembles premier et suivant pour chacun des non terminaux de la grammaire suivante. A B C D BaCB | D CA | b | BAD | BB | c AA | d

M eme question pour la grammaire obtenue en rempla cant AA dans la derni` ere r` egle par CA.

2
2.1

Analyse syntaxique
Analyse descendante

Exercice 2.1 V erier que la grammaire de lexercice 1.1 est bien LL(1) et construire sa table de pr ediction. Ecrire les proc edures de lanalyseur syntaxique correspondant a ` chaque non-terminal. Les grammaires de lexercice 1.2 sont-elles LL(1)? 1

Exercice 2.2 Une grammaire LL(1) peut-elle etre ambigu e? Peut-elle etre r ecursive gauche? Peut-elle etre non factoris ee? Pour essayer de transformer une grammaire non LL(1) en grammaire LL(1), que peut-on faire? Une grammaire factoris ee et non r ecursive gauche est-elle n ecessairement LL(1)? Exercice 2.3 Les grammaires suivantes sont-elles LL(1)? Justier. S ABc S Ab S ABBA S aSe | B A a | A a | B | A a | B bBe | C B b | B b | B b | C cCe | d Exercice 2.4 Construire la table de pr ediction des grammaire de lexercice 1.2. Ces grammaires sont-elles LL(1)? Exercice 2.5 Construire 1 <Expr > 2 <Expr > 3 <Expr > 4 <FinExpr > 5 <FinExpr > 6 <Var > 7 <FinVar > 8 <FinVar > la table de pr ediction de la grammaire suivante: - <Expr> ( <Expr> ) <Var> <FinExpr> - <Expr> ID <FinVar> ( <Expr> )

Exercice 2.6 Transformer la grammaire suivante en grammaire LL(1). <ListeDecl> <ListeDecl> ; <Decl> | <Decl> <Decl> <ListeId> : <Type> <ListeId> <ListeId> ,ID | ID <Type> <TypeScalaire> | tableau <ListeTypesScalaires> de <Type> <TypeScalaire> ID | <Borne> .. <Borne> <Borne> <Signe> INT | ID <Signe> + | | <ListeTypesScalaires> <ListeTypesScalaires> , <TypeScalaire> | <TypeScalaire>

You might also like