Accueil
Professeur et Démonstrateurs
Horaires et locaux
Notes de cours
Démonstrations et devoirs
Examens
Liens utiles
Au sujet du livre de cours
Consultez vos notes
Foire aux questions (FAQ)
|
|
Démonstration 5: Révisions INTRA
Pas de "baratin" cette semaine, les démonstrateurs vous parlerons de:
- programmation modulaire en C (.h .c): différencier les
déclarations des définitions (les .h contiennent des définitions
communes à plusieurs modules, les .c des déclarations).
- écrire un petit makefile (le but est ici de vous faire écrire le
makefile que vous devez remettre pour le tp1).
- n'hésitez pas à leur poser des questions, c'est la dernière fois
avant la semaine de relache que vous en aurez l'occasion.
Voici quelques liens qui vous seront peut-être utiles si vous
souhaitez approfondir la modularité en C/C++ (un seul de ces liens est
suffisant):
Travail pratique (pas noté mais fortement recommandé)
Ceci comprend également les premiers cours sur les grammaires,
aussi je vous donne quelques exercices de révision.
1) Grammaires ambiguës
Prouvez que la grammaire suivante est ambiguë:
S -> A
A -> A + A | id
id -> a | b | c
|
2) Langage décrit
A) Quel est le langage décrit par cette grammaire (où S est l'axiome) ?
S -> a S | b
B) Quel est le langage décrit par cette grammaire (où S est l'axiome) ?
S -> a S b | ab
C) Quel est le langage décrit par cette grammaire (où S est l'axiome) ?
S -> A B
A -> a A | a
B -> B b | b
D) Quel est le langage décrit par cette grammaire (où S est l'axiome) ?
S -> A B C
A -> a A | a
B -> b B | b
C -> c C | c
|
3)
Soit la grammmaire (S l'axiome):
S -> a S c B | A | b
A -> c A | c
B -> d | A
Parmi les chaînes suivantes, quelles sont celles qui font parti du langage décrit par cette grammaire:
- abcd
- acccbd
- acccbcc
- acd
- accc
|
4) Arbres de dérivation
Soit la grammmaire (assign est l'axiome):
assign -> id = expr
id -> a | b | c
expr -> expr + term | term
term -> term * factor | factor
factor -> (expr) | id
A) Dessiner un arbre dérivation pour les chaînes suivantes:
- a = ( a + b ) * c
- a = b + c + a
- a = a * (b + c)
- a = b * (c * (a + b))
B) Écrire une dérivation gauche de la première chaîne (a = ( a + b ) * c )
|
5) Grammaires LL1
A) la grammaire suivante est-elle LL1? Pourquoi ?
S -> a S1 | b S2
S1 -> a
S2 -> b
B) la grammaire suivante est-elle LL1? Pourquoi ?
S -> a S1 | b S2
S1 -> b
S2 -> a
C) la grammaire suivante est-elle LL1? Pourquoi ?
S -> a S1 | b S2
S1 -> b S1 | S2
S2 -> b
D) la grammaire BNF du sujet du TP1 est-elle LL1? Pourquoi ?
E) Décrire les langages décrits par chacune des grammaires précédantes
|
[top] |