Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Examen de Rattrapage
Niveau d’étude : ING 1 Semestre : 2
Matière : Techniques de compilation Date : Juin 2014
Nombre de pages : 2 Durée : 2H00
Chargé (s) de cours : Ramzi GUETARI Documents : Nonon Autorisés
S → UVW
U → (S) | aSb | d
V → aV | ε
W → cW | ε
Table prédictive
Barème :
Ex. 1 : 4 points -- Ex. 2 : 6 points -- Ex. 4 : 4 points -- Ex. 4 : 6 points1
ISI
IN S T I TUT الجـمـــھـورية التــــونـسـيـة
SUPERIEUR وزارة الـتعليم العالي
INFORMATIQUE
جامــــعــة تــونــس المــنـار
الـمعھـد العـالـي لإلعـالمــيـة المعـھـد الـعالـي لإلعـالمـيـة
EXERCICE 2 : GRAMMAIRES
d) S → AS | B A → aAc | Aa | ε B → bBb | ε
chaînes composées de 'a' et de 'c' avec un nombre de 'c' inférieur ou u égal au nombre de 'a'.
'a' Le préfixe ne
peut pas avoir plus de 'c' que de 'a' le tout se terminant par un nombre pair de b de
e) S → S and S | S or S | (S) | true | false
Les expressions boolé léennes 'true' et 'false' séparées par 'and' et 'or' avec des expression entre
paraenthèses.
f) Quelle est celle qui est récursive à gauche ?
d) et e)
g) Quelle est celle qui est récursive à droite ?
a) c) d) et e)
h) Quelle est la grammaire ambigüe ? Donner une justification.
2. Ecrire une grammaire hors contexte pour le langage défini sur Σ = {x, y, z} ; L = {w ∈ Σ* / w = xi y j z k ;
k = i - j}
S → xSz | L
L → xLy | ε
Barème :
Ex. 1 : 4 points -- Ex. 2 : 6 points -- Ex. 4 : 4 points -- Ex. 4 : 6 points2
ISI
IN S T I TUT الجـمـــھـورية التــــونـسـيـة
SUPERIEUR وزارة الـتعليم العالي
INFORMATIQUE
جامــــعــة تــونــس المــنـار
الـمعھـد العـالـي لإلعـالمــيـة المعـھـد الـعالـي لإلعـالمـيـة
EXERCICE 3 : GRAMMAIRES
Soit G1 et G2 deux grammaires hors contexte engendrant, respectivement, les langages L(G1) et L(G2). Montrer qu'il existe une grammaire hors
contexte engendrant chacun des langages suivants :
Posons G1 = ({w1, ... wk}, {S1, A1, ... Am}, S1, R1)
G2 = ({q1, ... qk}, {S2, B1, ... Bm}, S2, R2)
a) L(G1) ∪ L(G2)
La grammaire G3 qui engendre le langage L(G3) = L(G1) ∪ L(G2) est définie par :
G3 = ({q1, ... qk, w1, ... wk }, {S, S1, S2, A1, ... Am, B1, ... Bm }, S, R1 ∪ R2 ∪ {S → S1|S2}
b) L(G1) L(G2)
c) L(G1)*
Barème :
Ex. 1 : 4 points -- Ex. 2 : 6 points -- Ex. 4 : 4 points -- Ex. 4 : 6 points3
ISI
IN S T I TUT الجـمـــھـورية التــــونـسـيـة
SUPERIEUR وزارة الـتعليم العالي
INFORMATIQUE
جامــــعــة تــونــس المــنـار
الـمعھـد العـالـي لإلعـالمــيـة المعـھـد الـعالـي لإلعـالمـيـة
EXERCICE 4
Les instructions dans le langage Lisp sont des listes imbriquées. Chaque liste contient des atomes ou des listes. Les atomes sont entre
parenthèses. Les parenthèses de chacune des instruction sont, bien évidemment équilibrés. Exemple d'instruction Lisp, en considérant l'unique
atome "a" :
( (a a) (a)) (a (a a) (a a a))
1. Si on considère que l'ensemble des terminaux est Vt = {(, ), a}, Construire une grammaire LL1 permettant d'engendrer ce langage. donner sa
table prédictive.
L → (S)
L → a
S → LS
S → ε
G est LL1
PREMIERS (L) = { (, a }
PREMIERS (S) = { (, a, ε }
SUIVANTS (L) = { (, a, ), $ }
SUIVANTS (S) = { ) }
Table
a ( )
L L→a L → (S)
S S → LS S → LS S→ε
2. Transformer la grammaire en schéma de traduction permettant l'impression numérotée et indentée d'une instruction. Voir l'exemple suivant :
1. (
1.1 (
1.1.1 : x
1.1.2 : y
)
1.2 : x
1.3 (
1.3.1 y
)
1.4 (
1.4.1 : y
1.4.2 (
1.4.2.1 : x
1.4.2.2 : y
)
)
)
L’algorithme est quasiment donné dans l’exemple. Les opérations sont simples et basiques. Il s’agit d’avoir un attribut hérité (que j’ai
nommé dewey dans le schéma de traduction) qui représente le numéro de Dewey à imprimer. L’évolution de cette chaine se fait
comme suit :
Au départ, il vaut 0 (avant la création d’un niveau) chaque fois qu’on crée une nouvel item à un niveau donné il est incrémenté de 1.
La création d’un item se fait par les règles de production L → … Le mécanisme est el même pour les sous listes. Chaque fois qu’on
remonte d’un niveau, on soustrait la dernière partie du numéro de Dewey à la chaine.
L’attribut hérité dewey est la concaténation des valeurs de tous les niveaux séparés par un point.
Barème :
Ex. 1 : 4 points -- Ex. 2 : 6 points -- Ex. 4 : 4 points -- Ex. 4 : 6 points4
ISI
IN S T I TUT الجـمـــھـورية التــــونـسـيـة
SUPERIEUR وزارة الـتعليم العالي
INFORMATIQUE
جامــــعــة تــونــس المــنـار
الـمعھـد العـالـي لإلعـالمــيـة المعـھـد الـعالـي لإلعـالمـيـة
L’ → { L.str := ""; L.level := 0 } L
Barème :
Ex. 1 : 4 points -- Ex. 2 : 6 points -- Ex. 4 : 4 points -- Ex. 4 : 6 points5