Vous êtes sur la page 1sur 14

17 Mars 2005, 2A - Examen Compilation , ENSIAS

Examen Compilation
Enseignant : Karim Bana
Dure = 2H00
(Seuls les documents de cours et les TP sont autoriss !!)
NB : les rponses directes et synthtiques seront apprcies

Exercice I : QCM 5 pts ( rendre avec votre copie !!)


Pour chaque concept/question, remplissez la case de la colonne des choix uniques correspondante par
un choix qui soit le plus adquat :

Concept/Question Choix unique Choix possibles


(1) Reprsentation intermdiaire linaire (a) DAG
(2) Automate Piles (b) Parseur bottom-up
(3) Grammaire rgulire (c) Assembleur
(4) Rcursivit gauche (d) Langage rgulier
(5) Ambigut (e) Pompage
(6) Erreur de parenthsage non quilibr (f) Parseur Top-down
(7) LL(1) (g) Bouclage du parseur LL(1)
(8) LALR (h) Langage irrgulier
(9) Analyse smantique (i) Grammaire linaire LL(1)
(10) Automate dtat finis (j) Analyse lexicale
(11) Dterminisme (k) Grammaire linaire
(12) Reprsentation intermdiaire graphique (l) Code 2-adresses
(13) Identificateur erron (m) Analyse syntaxique
(14) lemme de ltoile (n) Erreur de type
(15) L2G (o) 2 Arbres syntaxiques

1/2
17 Mars 2005, 2A - Examen Compilation , ENSIAS

Exercice II : Problme 15 pts


On sintresse lanalyse de logs dexcution de composants logiciels sur Internet (les Web Services).
Pour ce faire on voudrait raliser un analyseur smantique qui analyse syntaxiquement les diffrents
logs htrognes qui existent et qui en ralise une analyse smantique en calculant des indicateurs sur
la base des logs dexcution de Web Services.

On dfinit un vnement dinvocation dune opration de Web Service (EVENTOP) comme une
structure qui contient : (1) le nom de cette opration (OPERATION : identificateur), (2) linstant
dinvocation de cette opration (TIME) qui est sous la forme JJ.MM.AA.hh.mm.ss.mm, (3) ladresse IP
du client qui a invoqu lopration, et (4) la liste (ventuellement vide) des paramtres input de
lopration invoque (PARAM : chane ne contenant pas de caractre #) fournis par le client cette
opration invoque. La structure dun vnement est la suivante # OPERATION:TIME :IP(:PARAM)*#

Exemple dvnement :
#orderCD:16.03.2005.18.25.30.25:81.192.21.159:SUFISS DREAM:ASIA PRODUCTION#

Exercice II-A (Analyse Lexicale) 4pts

(a) Donner les automates dterministes (sous-entendus sans -transition) qui reconnaissent les units
lexicales (ou tokens) : IP, OPERATION, TIME, PARAM, et EVENTOP.

(b) Programmer le scanner qui reconnat le token EVENTOP sous FLEX

Exercice II-B (Analyse Syntaxique) 5pts


Un log de Web Service (LOG) est une suite ventuellement vide dvnements. Un vnement existe
sous deux formes diffrentes : EVENTOP: #OPERATION:TIME:IP(:PARAM)*# (pralablement tudi)
et EVENTIP: #IP:OPERATION:TIME(:PARAM)*#.
(a) Donner une grammaire GLOG LALR simple (dont le start est SLOG) qui reconnat le langage L(SLOG)
des logs dexcution de Web Services, en vous basant sur les rsultats de lExercice I.
(b) Quel est le type du langage L(SLOG), dmontrez-le.
(c) Donner la grammaire LL(1) quivalente GLOG.
(d) Programmer le parseur LALR (bottom-up) qui reconnat le langage L(SLOG) sous BISON.

Exercice II-C (Analyse Smantique) 6pts


Afin danalyser le logs de notre Web Service, nous dsirons calculer les indicateurs I1-I3 suivants :
I1- le nombre de fois quune adresse IP donne invoque notre Web Service en question
I2- le nombre de fois quune opration donne est invoque chaque jour
I3- la moyenne du nombre de fois quune opration donne est invoque par jour

(a) Donner une grammaire attribue et complter lanalyse lexicale par des actions smantiques pour
calculer en une seule passe les trois indicateurs I1-I3.
(b) Programmer lanalyseur smantique implantant ce systme smantique sous BISON.

2/2
27 Dcembre 2005, 2A - Examen Compilation I , ENSIAS

Examen Compilation I
Enseignant : Karim Bana
Dure = 1H30
(Seuls les documents de Cours et de TD sont autoriss !!)
NB : les rponses directes et synthtiques seront apprcies

Nom :
Prnom :..

Exercice I : QCM 5 pts ( rendre avec votre copie !!)


Pour chaque concept/question, remplissez la case de la colonne des choix
uniques correspondante par un choix qui soit le plus adquat :

Concept/Question Choix unique Choix possibles


(1) A= < S, , , s0, F > o S F (a) Assembleurs
(2) Automate Piles (b) Analyse syntaxique
(3) Grammaire rgulire (c) Pompage
(4) card( -fermeture( s0 ) ) > 1 (d) Analyse lexicale
(5) typedef void * Vector ; (e) Langage irrgulier
(6) Erreur de parenthsage non quilibr (f) Grammaire linaire
(7) Automate dtat finis (g) Langage rgulier
(8) Identificateur erron (h) Lexme
(9) Lemme de ltoile (i) L
(10) Token (j) (s0, )= s1, o s0 s1
(11) L2G (a) Question rsolue (k) fermeture de Kleene

1/2
27 Dcembre 2005, 2A - Examen Compilation I , ENSIAS

Exercice II : Expressions rgulires 5pts


1. Soit L un langage fini, dmontrez que L est rgulier. (1pt)
2. Est-ce la rciproque est vraie ? Justifiez ! (1pt)
3. Est-ce que lintersection de deux langages rguliers est un langage
rgulier ? Justifiez ! (1pt)
4. Est-ce que le complmentaire dun langage rgulier L (* \ L) est un
langage rgulier ? Justifiez ! (1pt)
5. Est-ce que le langage L={nIN / n 0 [16]} est rgulier ? Justifiez ! (1pt)

Exercice III : Programmation dautomates 10pts


1. Si un automate A(L) reconnat le langage L en n tats et p transitions.
Quelle est la complexit en temps de la fonction indicatrice PL : *
{0,1} o PL(w L)=1 et PL(w L)=0. (1pt)
2. Quel est lintrt pratique de minimiser un automate A(L) (i.e. trouver un
automate A(L) quivalent A(L) avec n et p minimaux) ? Donner des
exemples de systmes pour lesquels cette technique est
incontournable (1pt)
3. Transformez le NFA suivant un DFA (2pt)

4. Trouvez lexpression rgulire quivalente lautomate rsultant de


III.2. (a) intuitivement et (b) en utilisant lalgorithme vu en cours (2pt)
5. Donnez la grammaire linaire quivalente lautomate rsultant de
III.3. (1pt)
1. Donner deux manires en langage C de programmer lexpression
rgulire rsultant de III.4 (a) lune base de lautomate DFA et (b)
lautre base de la grammaire de V.1. (3pt)

2/2
27 Mars 2006, 2A - Examen Compilation II , ENSIAS

Examen Compilation II
Enseignant : Karim Bana
Dure = 2H00

Seuls les documents de Cours et de TD sont autoriss !!


Le barme est donn seulement titre indicatif !!
Les rponses directes et synthtiques seront apprcies

Nom :
Prnom :..

Exercice I : QCM 5 pts ( rendre avec votre copie !!)


Pour chaque concept/question, remplissez la case de la colonne des choix
uniques correspondante par un choix qui soit le plus adquat :

Concept/Question Choix Choix possibles


unique
(1) DAG (b) (a) dmontrer qu une grammaire
est ambigu est dcidable mais
linverse est non dcidable
(2) bytecode J2ME (b) Reprsentation..
(3) Grammaire attribue (c) Analyse Bottom-up
(4) Grammaire LL (d) Erreur Syntaxique
(5) Acorn RISC Machine-ARM (e) Reprsentation..
(6) select * from * ; (f) Analyse Top-down
(7) bytecode (e) (g) Erreur Smantique
(8) select T1.A1 from T2 ; (h) Classe dexpression rgulire de *
(9) Grammaire LALR (i) actions smantiques
(10) Terminal t T (j) one-address code
(11) semi-dcidabilit (a) RESOLUE (k) three-address code

1/2
27 Mars 2006, 2A - Examen Compilation II , ENSIAS

Exercice II : Analyse Syntaxique / Contextuelle 10 pts

Soit la grammaire LALR GSELECT du langage sous la forme BNF suivante :


<SELECT> ::= SELECT <PROJECT> <FROM>
<PROJECT> * | <COLUMNS>
<FROM> FROM <TABS> <FROMAUX>
<COLUMNS> ::= <COLUMN> <COLUMNAUX>
<COLUMNAUX> ::= | , <COLUMNS>
<COLUMN> ::= IDF <POINTEDCOLUMN>
<POINTEDCOLUMN> ::= | . IDF
<TABS> ::= IDF | IDF , <TABS>
<FROMAUX> ::= | <WHERE> | <ORDERBY>
<WHERE> ::= WHERE <EXPBOOL>
<EXPBOOL> ::= NOT <EXPBOOL>
| <EXPBOOL> AND <EXPBOOL>
| <EXPBOOL> OR <EXPBOOL>
| <COLUMN> <OP> <COLUMN>
<OP> ::= < | <= | > | >= | = | <>

1. Dmontrer que la grammaire GSELECT est Ambigu (a) contre-


exemple et (b) causes dambigut (2 pt)
2. Eliminer lambigut en se basant sur les mmes conventions
que le cours (2 pts)
3. Eliminer la rcursivit gauche de la grammaire GSELECT (2 pt)
4. Rendre la grammaire GSELECT LL(1) (2 pts)
5. Donner quatre dfauts ou limitations syntaxiques de la
grammaire GSELECT et proposer les solutions pour ces trois
dfauts (2 pts)

Exercice III : Smantique et Programmation 6 pts1

1. Rendre la grammaire GSELECT attribue LL(1) (2 pt)


2. Programmer la grammaire attribue LL(1) en C (2 pt)
3. Programmer la grammaire attribue LALR en bison ? (2 pt)

1 (dont 1 pt optionnel)

2/2
18 Dcembre 2006, 2A - Examen Compilation I , ENSIAS

Examen Compilation I
Enseignant : Karim Bana
Dure = 1H30
(Seuls les documents de Cours et de TD sont autoriss !!)
NB : le style rigoureux et synthtique sera apprci

Nom :
Prnom :..

Exercice I : QCM 5 pts ( rendre avec votre copie !!)

Pour chaque concept/question, remplissez la case de la colonne des choix


uniques correspondante par un choix qui soit le plus adquat :

Concept/Question Choix Choix possibles


unique
(1) A= < S, , , s0, F > o s0 F (a) Langage binaire
(2) Automate Piles (b) Analyse syntaxique
(3) Systme dquations (c) deux arbres syntaxiques
(4) -fermeture( s0 ) \ { s0} (d) Analyse lexicale
(5) Problme semi-dcidable (e) Langage hors contexte
(6) Erreur : if sans endif (en csh) (f) Grammaire linaire
(7) Automate dtat finis (g) Langage rgulier
(8) Erreur : /* sans */ ( en C) (h) Minimiser un automate
(9) Grammaire ambigu (i) L
(10) Optimisation en mmoire (j) Vrifier lambigut dune grammaire
(11) L1G (a) rsolu (k) (s0, )= s1, o s0 s1

1/2
18 Dcembre 2006, 2A - Examen Compilation I , ENSIAS
Exercice II : Langages rguliers 10pts
1. Dmontrer que pour toute expression rgulire et :
a) ()* = ()* (1pt)
b) *(*)* = (*)** (1pt)
2. Montrez que pour tout langage rgulier L1 et L2, le langage L1 L2 est
rgulier (fermeture des langages rguliers par intersection) (1pt)
3. Donner lexpression rgulire dcrivant le langage L={nIN / n 0 [32]}
(1pt)
4. Si la complexit en temps de la fonction de transition est en (1)
quelle est la complexit en temps de lalgorithme non optimis de
transformation dun automate non dterministe sans epsilon transition
AN = <SN, N, N, sN0, FN > en un automate dterministe ? (1pt)
5. Soit (Ai)i=0..n une suite dautomates dtats finis sous la forme de la
figure 1 (a) donner et dmontrer la forme rgulire gnrale des
langages L(Ai)i=0..n (b) quelle est la proprit conserve par la suite
(L(Ai))i=0..n (c) dmontrer cette proprit. (3pts)
1 1 1 1

0 0 0 0 0 ... En-1 0 En
E0 E0 E1 E0 E1 E2 E0 E1 E2

1 1 1 1 1 1

A0 A1 A2 An
Figure 1 : (Ai)i=1..n une suite dautomates dtats finis
6. Rendre le NFA AN=<SN={A..T},N={0,1},N,sN0=A,FN={T}> dterministe (2pts)

Figure 2 : Automate non dterministe epsilon transition

Exercice III : Langages hors contextes 5pts


1. Donner et dcrire les grammaires hors contexte des langages suivants :
a. L1 = { aibjck / ij ou jk} (1pt)
b. L2 = { aibjck / j=i+k} (1pt)
c. L3 = {w {a,b}* / w = vv-1 ou w = v -1, o v {a,b}*}1 (1pt)
2. Soit la grammaire suivante G = <T={a,b,c}, NT={A,B,C,D}, S, P={r1..r10}>
S ::= <A> <B> (r1) |<C> <D> (r2)
A ::= a <A> b (r3) |ab (r4)
B ::= c (r5) |c <B> (r6)
C ::= a (r7) |a <C> (r8)
D ::= b <D> c (r9) |bc (r10)
a. Quel est le langage L(G), justifier (1pt)
b. Que dire de la grammaire G, justifier, donner des ides de
solutions ventuelles (1pt)

1 dnote le complment de v dans {a,b}* et v-1 dnote linverse de v dans {a,b}* (ex : abb =baa, (abb) -1=bba, abb -1 =aab)

2/2
14 Mars 2007, 2A - Examen Compilation II , ENSIAS

Examen Compilation II
Enseignant : Karim Bana
Dure = 2H00
Seuls les documents de Cours et de TD sont autoriss !!
Le barme est donn seulement titre indicatif !!
Les rponses directes et synthtiques seront apprcies

Nom :
Prnom :..

Exercice I : QCM 5 pts ( rendre avec votre copie !!)


Pour chaque concept/question, remplissez la case de la colonne des choix uniques correspondante par
un choix qui soit le plus adquat :

Concept/Question Choix unique Choix possibles


(1) Control Flow Graph (b) (a) dmontrer qu une grammaire est
ambigu est dcidable mais linverse est
non dcidable
(2) bytecode J2EE (b) Reprsentation..
(3) Grammaire attribue (c) Analyseur Ascendant
(4) Grammaire LL (d) Erreur Syntaxique
(5) Acorn RISC Machine-ARM (e) Reprsentation..
(6) select * from * ; (f) Analyseur Descendant
(7) bytecode (e) (g) Erreur Smantique
(8) select T1.A1 from T2 ; (h) Erreur Lexicale
(9) Grammaire LR (i) actions smantiques
(10) Commentaire C non ferm (j) one-address code
(/* sans */)
(11) semi-dcidabilit (a) RESOLUE (k) three-address code

1/2
14 Mars 2007, 2A - Examen Compilation II , ENSIAS

Exercice II : Analyse Syntaxique / Contextuelle 10 pts

Soit la grammaire LALR Gpcsh du langage sous la forme BNF suivante :


<SCRIPTPCSH> ::= <HEAD> <INSTLIST>
<HEAD> ::= #!/bin/pcsh RC
<INSTLIST> ::= <INST> <INSTLISTAUX>
<INSTLISTAUX> ::= | RC <INSTLIST>
<INST> ::= <ECHO> | <ASSIGN> | <IF> | <FOREACH> | <WHILE> | COMMENT
<ECHO> ::= echo <ECHOAUX>
<ECHOAUX> ::= $IDF | <ELT>
<ASSIGN> ::= @ IDF = <EXPNUM> | set IDF = STRING
<IF> ::= if ( <EXPBOOL> ) then RC <INSTLIST> <ELSE> RC endif
<ELSE> ::= | RC else RC <INSTLIST>
<FOREACH> ::= foreach IDF ( <ELTLIST> ) RC <INSTLIST> RC end
<WHILE> ::= while ( <EXPBOOL> ) RC <INSTLIST> RC end
<EXPNUM> ::= NUM | $IDF | <EXPNUM> OPNUM NUM | <EXPNUM> OPNUM $IDF
<EXPBOOL> ::= $IDF | <EXPBOOL> OPBOOL <EXPBOOL> | ! (<EXPBOOL> ) | $IDF
COMP <ELT>
<ELTLIST> ::= <ELT> <ELTLISTAUX>
<ELTLISTAUX> ::= | <ELTLIST>
<ELT> ::= STRING | NUM

O respectivement la description des terminaux est la suivante : RC (retour chariot), COMMENT


(commentaire c-shell sur une ligne : toute suite de caractres commenant par une #) IDF (identificateur),
OPNUM (oprateur arithmtique : *, +, -, /, %), STRING (chane de caractres entre apostrophes ),
OPBOOL (oprateur logique : &&, ||, !), IDFORNUM (IDF ou NUM), COMP (oprateur relationnel : ==, <=,
>=, !=). On utilisera la smantique usuelle des instructions C-SHELL.

1. Dmontrer que la grammaire Gpcsh est Ambigu (a) contre-exemple et (b) causes
dambigut (2 pt)
2. Eliminer lambigut en se basant sur les mmes conventions que le cours (2 pts)
3. Eliminer la rcursivit gauche de la grammaire Gpcsh (2 pt)
4. Rendre la grammaire Gpcsh LL(1) (2 pts)
5. Donner trois dfauts ou limitations syntaxiques de la grammaire Gpcsh et proposer
les solutions pour ces trois dfauts (2 pts)

Exercice III : Smantique et Programmation 6 pts1

1. Rendre la grammaire Gpcsh attribue LL(1) (2 pt)


2. Programmer la grammaire attribue LL(1) en C (2 pt)
3. Programmer la grammaire attribue LALR en bison ? (2 pt)

1 (dont 1 pt optionnel)

2/2
10 Dcembre 2007, 2A - Examen Compilation I , ENSIAS

Examen Compilation I
Enseignant : Prof. Karim BANA
Dure = 1H30
(Seuls les documents de Cours et de TD sont autoriss !!)
NB : le style rigoureux et synthtique sera apprci
Les rponses sont rendre sur cette mme copie

Nom :
Prnom :..

Exercice I : Questions de cours (5 pts) (rponse fausse = 0)


Pour chaque concept/question, remplissez la case de la colonne des choix uniques
correspondante par un choix qui soit le plus adquat

Concept/Question Choix Choix possibles


unique
(1) DFA= < S, , , s0, F > o s0 F (a) Langage dassemblage
(2) pompage (b) peudo-quivalence (asymtrie)
(3) analyse lexicale (c) * o = {a, b}
(4) -fermeture( s0 ) \ { s0} (d) scanning
(5) analyse syntaxique (e) (ab)* b
(6) -fermeture (f) parsing
(7) a (ba)* (g) irrgularit dun langage
(8) rsiduels gauche (h) minimiser un automate de contrle
(9) (a+b)* (i) L
(10) mmoire portable optimise (j) calcul des suffixes de suffixes
(11) L2G (a) rsolu (k) (s0, )= s1, o s0 s1

Exercice II : Vrifier et Justifier (5 pts) (rponse fausse=-0.5)


1) (a une lettre le langage {a*} est rgulier) ? Vrai  Faux 
..
2) (Le langage L est fini L est rgulier) ? Vrai  Faux 
..
3) (L est rgulier le langage * \ L est rgulier)? Vrai  Faux 
..
..
4) (L1 et L2 sont rguliers le langage L1 L2 est rgulier) ? Vrai  Faux 
..
..
..
5) (le langage L1 L2 est rgulier L1 et L2 sont rguliers) ? Vrai  Faux 
..
..
..
6) (L* est rgulier le langage L est rgulier) ? Vrai  Faux 
..
..
..
1/2
10 Dcembre 2007, 2A - Examen Compilation I , ENSIAS
Exercice III : Transformations rgulires (10 pts) (rponse fausse=-1)
(Q1) Dterminer les relations dquivalence 1-1 entre un objet source (de la colonne 1) et un objet
cible (de la colonne 3). (Q2) Dsigner un seul algorithme de construction de cette quivalence
(A1 : dterminisation, A2 : Glushkov, A3 : recherche de chemin dans un automate A4 : quations
linaires, A5 : minimisation par sparation des tats, A6 : minimisation par calcul des rsiduels
gauche). (Q3) Dmontrer cette quivalence en appliquant lalgorithme choisi en (Q2).
colonne 1 (Q1) colonne 3 (Q2) (Q3)
Objet Source Objet Objet Cible Algo. Dmonstration
cible choisi
choisi (A 1..A6)
(A..E)
(A)

A 1 B
2
E G
C D I J
F 3 H 0, 1
S0 1 S1

(B)
1 1
2
2 1 3
0 1
0 0 1 0 1
0
3 1, 3 2
2
0

0+ (0 + 1)* (C)

2,3

A 1 BC

1*1(0+1)* (D)

b a, b
0 a 1

(E)

1 a 4 a,b a,b
a b (1 | 2+(1 | 3) 3)*
3 a, b 6
0
a
b 2 b 5 a
b

2/2
05 Mars 2008, 2A - Examen Compilation II , ENSIAS

Examen Compilation II
Enseignant : Karim Bana
Dure = 2H00

Seuls les documents de Cours et de TD sont autoriss !!


Le barme est donn seulement titre indicatif !!
Les rponses directes et synthtiques seront apprcies

Nom :
Prnom :..

Exercice I : QCM 5 pts ( rendre avec votre copie !!)

Pour chaque concept/question, remplissez la case de la colonne des choix uniques


correspondante par un choix qui soit le plus adquat :

Concept/Question Choix unique Choix possibles


(1) Bytecode Java (b) (A) dmontrer qu une grammaire
est ambigu est dcidable mais
linverse est non dcidable
(2) ADDOP REG1, REG2 (B) Reprsentation..
(3) Nombre de registres (C) Analyseur Ascendant
ncessaire pour un
expression arithmtique
(4) Grammaire LL (D) Erreur Syntaxique
(5) Acorn RISC Machine- (E) Reprsentation..
ARM
(6) select * from * ; (F) Analyseur Descendant
(7) pseudo-code (E) (G) Erreur Smantique
(8) select T1.A1 from T2 ; (H) Erreur Lexicale
(9) Grammaire LR (I) Attribut ncessaire la gnration
de pseudo-code
(10) Commentaire C non (J) two-address code
ferm (/* sans */)
(11) semi-dcidabilit (A) rsolue (K) three-address code

Exercice II : Analyse Syntaxique / Contextuelle 10 pts

Soit la grammaire LALR Gpseudoc du langage dcrite sous la forme BNF ci-aprs.

1. Dmontrer que la grammaire Gpseudoc est Ambigu (a) contre-exemple et (b) causes
dambigut (2 pt)
2. Eliminer lambigut en se basant sur les mmes conventions que le cours (2 pts)
3. Eliminer la rcursivit gauche de la grammaire Gpseudoc (2 pt)
4. Rendre la grammaire Gpseudoc LL(1) (2 pts)
5. Donner trois dfauts ou limitations syntaxiques de la grammaire Gpseudoc et proposer
les solutions pour ces trois dfauts (2 pts)

1/2
05 Mars 2008, 2A - Examen Compilation II , ENSIAS

Les commentaires sont compris entre /* et */ et ne s'imbriquent pas. Les blancs sont interdits au milieu
d'un mot cl, ignors ailleurs. Un identificateur est une suite de lettres, et une constante entire
nb_entier est une suite de chiffres. Le lexme virgule, joue le rle de sparateur d'identificateurs. Le
point-virgule ; joue le rle de terminateur d'instruction. Les oprateurs relationnels sont ==,=, <=, >=,
<, >. Les oprateurs logiques sont || (ou), && (et), et ! (non). L'affectation est note =. Les oprateurs
arithmtiques sont +, -, *, % et /. Le moins unaire est aussi not -. Parenthses (), crochets [],
accolades {} sont des lexmes utiliss comme en C. Pour comprendre dautres lments de cette
grammaire, on utilisera la smantique usuelle des instructions du langage C.

Exercice III : Smantique et Programmation 6 pts1


1. Rendre la grammaire Gpseudoc attribue LL(1) (2 pt)
2. Programmer la grammaire attribue LL(1) en C (2 pt)
3. Programmer la grammaire attribue LALR en bison ? (2 pt)

1
(dont 1 pt optionnel)
2/2