:: Enseignements :: ESIPE :: E4INFO :: 2008-2009 :: Compilation ::
[LOGO]

Analyse LR


Dans ce TD, nous allons voir comment construire l'automate des items LR d'une grammaire, ainsi que la table d'analyse correspondante qui permet de tester si un mot appartient ou non au langage reconnu par la grammaire.

Exercice 1 - Analyses LR(0) et SLR(1)

Soit la grammaire :
G1 : (p0) S ::= E '$' (p3) T ::= 'id'
(p1) E ::= E '+' T (p4) T ::= '(' E ')'
(p2) E ::= T (p5) T ::= 'id' '(' E ')'
  • Calculer les ensembles annulable, premier et suivant. Sont-elles LL(1)?
  • Construire l'automate des items LR(0). Cette grammaire est-elle LR(0) ?
  • Construire la table d'analyse SLR(1) correspondante. Cette grammaire est-elle SLR(1) ?
  • Décrire l'analyse du mot id(id+id)$
  • Dessiner l'arbre de dérivation correspondant.

Exercice 2 - Plus d'analyses LR(0) et SLR(1)

Soit la grammaire G2 :
(p0) S ::= T '$' (p3) X ::= ε
(p1) T ::= X B (p4) B ::= 'b' B
(p2) X ::= 'a' X 'b' (p5) B ::= 'b'
  • Construire l'automate des items LR(0).
  • Construire la table d'analyse SLR(1). Cette grammaire est-elle SLR(1) ?
  • Quel est le langage engendré par la grammaire ?
  • Utiliser la table pour faire l'analyse du mot abb$.

Exercice 3 - Analyses LR(1) et LALR(1)

Soit la grammaire G3 suivante :
G3 (p0) S ::= T '$' (p3) E ::= V
(p1) T ::= V '=' E (p4) V ::= 'id'
(p2) T ::= E (p5) V ::= '*' E
  • Calculer les ensembles annulable, premier et suivant. Sont-elles LL(1) ?
  • Construire l'automate des items LR(0). Cette grammaire est-elle LR(0) ?
  • Cette grammaire est-elle SLR(1) ?
  • Construire l'automate et la table LR(1) de la grammaire G3. La grammaire est-elle LR(1) ?
  • Construire la table LALR(1). La grammaire G3 est-elle LALR(1) ?