:: Enseignements :: ESIPE :: E4INFO :: 2007-2008 :: Compilation ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Introduction aux grammaires |
L'objectif de ce TD est de se familiariser avec les grammaires
algébriques, les arbres de dérivation et la désambiguïsation des
grammaires.
Exercice 1 - Grammaires
- Écrire une grammaire G1 qui reconnaît le langage des palindromes
(mots non vides qui peuvent se lire de droite à gauche et de gauche à droite)
sur l'alphabet {a,b} ;
- Écrire une grammaire non ambiguë G2 qui reconnaît les mots du
langage décrit par l'expression rationnelle a*b* et qui
contient plus (strictement) de a que de b ;
- Dessiner l'arbre de dérivation pour la grammaire G2 du mot aaaabb.
Exercice 2 - Grammaires et Java
Exercice 3 - Parenthèses
Soit la grammaire suivante :
G3
|
S ::= E '$' |
E ::= EE |
|
E ::= '(' E ')' |
E ::= ε |
- Donner un arbre de dérivation de (()()) pour cette grammaire.
- Cette grammaire est-elle ambiguë ? Expliquer.
- Proposer une autre grammaire équivalente qui ne soit pas ambiguë.
- Le langage décrit par cette grammaire peut-il être décrit par
une expression rationnelle ?
Exercice 4 - Désambiguïsation
Soit la grammaire suivante :
G4: |
S ::= T '$' |
T ::= '(' T ')' |
|
T ::= TT |
T::= 'int' |
|
T ::= ε |
- Cette grammaire est-elle ambiguë ?
- Proposer une grammaire non ambiguë.
Exercice 5 - Expressions arithmétiques
Soit la grammaire suivante des expressions arithmétiques :
G5: |
S ::= E '$' |
E ::= E '+' E |
E ::= E '-' E |
|
E ::= E '*' E |
E ::= E '/' E |
E ::= 'int' |
|
E ::= '(' E ')' |
- Cette grammaire est-elle ambigüe ?
- Proposer une grammaire non ambigüe.
© Université de Marne-la-Vallée