Académique Documents
Professionnel Documents
Culture Documents
Département Informatique
Semestre 5
Module Compilation
ii
Présentation
Ce document contient des examens de compilation avec corrections proposés dans le cadre du
module Compilation du semestre 5 de la filière Sciences Mathématiques et Informatique (SMI).
Ces examens ont été proposés entre les années 2015 et 2019
2
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique
Cours
1) Donner le schéma d’un analyseur syntaxique LR. Préciser le rôle de chaque élément
2) Donner l'arbre abstrait de l'expression : y=a+b+c*d.
Partie 1
Conserver dans (1) à (16) la ou les assertions justes.
1) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur inférieure-ou-égale 1.
c) a une longueur >=0.
2) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
3) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
4) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
5) Un langage est
a) uniquement compilé.
b) uniquement interprété.
c) peut-être combiné de compilé et interprété.
6) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.
7) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.
8) Une expression régulière définit
a) La syntaxe d’un langage
b) Les mots d’un langage.
c) Le lexique d’un langage.
9) Un interpréteur
a) est un traducteur.
b) n'est pas un traducteur.
c) a) ou b) selon le contexte.
10) Un compilateur
a) est un traducteur.
b) n'est pas un traducteur.
3
c) a) ou b) selon le contexte.
11) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
12) Dans un AFD
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
13) Un AFND
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
14) Un analyseur lexical
a) est toujours un programme séparé des autres analyseurs.
b) est toujours un programme intégré aux autres analyseurs.
c) a) ou b) selon le compilateur.
15) Un AFD
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
16) Un AFND
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
Partie 2
Exercice 1
Soit l’expression régulière suivante :
(a | b)*
1) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à cette expression
régulière.
2) En utilisant un algorithme vu dans le cours, transformer l’automate obtenu à la question
précédente en automate fini déterministe.
Exercice 2
Donner la factorisation de la grammaire suivante :
S aAd
S ab
A ac
Exercice 3
Donner la GHC équivalente à l’expression régulière suivante :
bc+
Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.
2) Construire l’arbre syntaxique issu de la dérivation droite de la chaîne ababab.
Exercice 5
On considère la grammaire suivante :
EFTd
4
Ff
Fε
Tt
T ε
1) Donner la table des premiers et suivants associés à cette grammaire.
2) Construire la table de prédiction de productions.
3) Construire la table d’analyse de prédiction de cette grammaire.
4) Donner le processus de reconnaissance de la chaîne fd.
5
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique
Cours
1) Donner le schéma d’un analyseur syntaxique LR. Préciser le rôle de chaque élément.
Description
- Entrée : phrase à analyser,
- Arbre syntaxique ou erreur : l'analyse génère l'arbre d'analyse si la phrase est correcte,
sinon erreur,
- Programme moteur : programme responsable du processus d'analyse en utilisant les tables
d'analyse action et successeur,
6
Partie 1
Conserver dans (1) à (16) la ou les assertions justes.
1) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur inférieure-ou-égale 1.
c) a une longueur >=0.
2) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
3) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
4) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
5) Un langage est
a) uniquement compilé.
b) uniquement interprété.
c) peut-être combiné de compilé et interprété.
6) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.
7) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.
8) Une expression régulière définit
a) La syntaxe d’un langage
b) Les mots d’un langage.
c) Le lexique d’un langage.
9) Un interpréteur
a) est un traducteur.
7
b) n'est pas un traducteur.
c) a) ou b) selon le contexte.
10) Un compilateur
a) est un traducteur.
b) n'est pas un traducteur.
c) a) ou b) selon le contexte.
11) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
12) Dans un AFD
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
13) Un AFND
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
14) Un analyseur lexical
a) est toujours un programme séparé des autres analyseurs.
b) est toujours un programme intégré aux autres analyseurs.
c) a) ou b) selon le compilateur.
15) Un AFD
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
16) Un AFND
a) peut reconnaître la chaîne ε.
b) ne reconnaît jamais la chaîne ε.
c) a) ou b) selon l'automate.
Partie 2
Exercice 1
Soit l’expression régulière suivante :
(a | b)*
1) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à cette expression
régulière.
Automate de a
Automate de b
Automate de a|b
8
Automate de (a|b)*
L'ensemble des états est fermé. On trace maintenant l'automate Y qui possède les états :
9
Exercice 2
Donner la factorisation de la grammaire suivante :
S aAd
S ab
A ac
La factorisation de cette grammaire consiste à mettre en facteur le symbole "a" dans les
productions :
S aAd
S ab
En écrivant
S1 Ad|b
SaAS1
S1 Ad|b
Aac
Exercice 3
Donner la GHC équivalente à l’expression régulière suivante :
bc+
La grammaire équivalente bc+ est donnée par
SbC
CCc|c
Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.
La dérivation droite de la chaîne ababab est comme suit (les éléments dérivés sont soulignés)
10
S=>AS =>Abab
=>Ab =>SAbab
=>SAb =>Sabab
=>Sab =>ASabab
=>ASab =>Ababab
=>ababab
Exercice 5
On considère la grammaire suivante :
EFTd
Ff
Fε
Tt
T ε
1) Donner la table des premiers et suivants associés à cette grammaire.
Symbole Premier Suivant
E ftd ↋
F f↋ td
T t↋ d
Production Prédiction
EFTd ftd
Ff f
Fε td
Tt t
T ε d
11
3) Construire la table d’analyse de prédiction de cette grammaire.
NT\T f t d
E EFTd EFTd EFTd
F Ff Fε Fε
T Tt Tε
12
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique
Partie 1
Conserver dans (1) à (20) la ou les assertions justes
1) Une forme sentence est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
c) symbole terminaux et/ou d’axiome.
2) La factorisation d’une grammaire consiste
a) à éliminer la récursivité.
b) à éliminer l’ambiguïté.
c) à ajouter une production pour reporter la décision de l’analyseur syntaxique.
3) . Une forme sententielle est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
c) symbole terminaux et/ou d’axiome.
4) Un axiome
a) dépend uniquement d'AFD.
b) dépend uniquement d'AFND.
c) à la fois a) et b)
5) Le langage du traducteur
a) doit être de bas niveau.
b) doit être de haut niveau.
c) est quelconque.
6) Le langage du traducteur
a) doit être compilé.
b) doit être interprété.
c) est quelconque.
7) Un analyseur syntaxique
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
8) Un langage est
a) uniquement de haut niveau.
b) uniquement de bas niveau.
c) peut-être à la fois a) et b).
9) Un GHC est définie pour
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
10) L'abréviation LR veut dire
a) Last and Reverse.
13
b) Last and Right.
c) Left and Right.
11) L'abréviation LL veut dire
a) Last and Left
b) Left and Last.
c) Left and Left.
12) L'abréviation LL est liée
a) au mode de lecture de la chaîne.
b) au mode de dérivation de la chaine.
c) au mode de formation de la chaîne.
13) Un analyseur lexical utilise
a) uniquement une table de symboles.
b) uniquement une table d’analyse.
c) à la fois une table de symboles et une table d’analyse.
14) Un analyseur lexical
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement au lexique.
15) Un analyseur syntaxique LR
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
16) Un analyseur syntaxique LL
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
17) Un analyseur LL
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
18) Un analyseur LL(1)
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
19) Un analyseur LL(2)
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
20) Un analyseur LR
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
Partie 2
Exercice 1
1) Donner l’expression régulière représentant les nombres binaires divisibles par 2.
2) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à l'expression trouvée en 1).
3) En utilisant un algorithme vu dans le cours, transformer l’automate obtenu à la question
précédente en automate fini déterministe.
4) Transformer l’expression obtenue en grammaire hors contexte.
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
S→ Sd
S→ab
14
A→ac
Exercice 3
On considère l’expression régulière suivante :
ab*c
1) Donner la GHC qui lui est équivalente.
2) Faire de même pour l’expression régulière suivante :
ba*
3) En déduire la GHC associée à l’expression régulière suivante :
ab*c| ba*.
Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.
2) Construire l’arbre syntaxique issu de la dérivation droite de la chaîne ababab.
Exercice 5
On considère la grammaire suivante :
S ABBAc
Aa
A ε
Bb
B ε
1) Chercher premiers et suivants des non terminaux.
2) Donner la table de prédiction de productions.
3) Construire la table d’analyse de prédiction de cette grammaire.
4) Cette grammaire est-elle LL(1)? La réponse doit être justifiée.
5) Donner le processus de reconnaissance de la chaîne abc.
15
Université Ibn Zohr SMI5/LPII-2016/2017
Faculté des Sciences Agadir
Département Informatique
Description
- Entrée$ : représente la phrase ou l'instruction à analyser,
- Pile : contient les terminaux et les non terminaux,
- Table d'analyse : matrice d'analyse qui détermine la production à choisir pour avancer dans le
processus d'analyse,
- Programme contrôleur : programme responsable de l'analyse de la phrase,
- Arbre syntaxique ou erreur : la sortie de l'analyse de la phrase, soit l'arbre d'analyse si la
phrase est correcte, sinon erreur.
3) Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :
↋|10*1
Partie 1
Conserver dans (1) à (20) la ou les assertions justes
1) Une forme sentence est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
16
c) symbole terminaux et/ou d’axiome.
2) La factorisation d’une grammaire consiste
a) à éliminer la récursivité.
b) à éliminer l’ambiguïté.
c) à ajouter une production pour reporter la décision de l’analyseur syntaxique.
3) . Une forme sententielle est une chaîne dérivée composée de
a) symboles quelconques.
b) symboles terminaux.
c) symbole terminaux et/ou d’axiome.
4) Un axiome
a) dépend uniquement d'AFD.
b) dépend uniquement d'AFND.
c) à la fois a) et b)
5) Le langage du traducteur
a) doit être de bas niveau.
b) doit être de haut niveau.
c) est quelconque.
6) Le langage du traducteur
a) doit être compilé.
b) doit être interprété.
c) est quelconque.
7) Un analyseur syntaxique
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
8) Un langage est
a) uniquement de haut niveau.
b) uniquement de bas niveau.
c) peut-être à la fois a) et b).
9) Une GHC est définie pour
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
10) L'abréviation LR veut dire
a) Last and Reverse.
b) Last and Right.
c) Left and Right.
11) L'abréviation LL veut dire
a) Last and Left
b) Left and Last.
c) Left and Left.
12) L'abréviation LL est liée
a) au mode de lecture de la chaîne.
b) au mode de dérivation de la chaine.
c) au mode de formation de la chaîne.
13) Un analyseur lexical utilise
a) uniquement une table de symboles.
b) uniquement une table d’analyse.
c) à la fois une table de symboles et une table d’analyse.
14) Un analyseur lexical
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement au lexique.
15) Un analyseur syntaxique LR
a) utilise une pile.
17
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
16) Un analyseur syntaxique LL
a) utilise une pile.
b) n'utilise pas de pile.
c) a) ou b) relativement à la grammaire
17) Un analyseur LL
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
18) Un analyseur LL(1)
a) sert à reconnaître les mots d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
19) Un analyseur LL(2)
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
20) Un analyseur LR
a) sert à reconnaître les phrases d’un langage.
b) permet une analyse sémantique.
c) permet une analyse syntaxique.
Partie 2
Exercice 1
1) Donner l’expression régulière représentant les nombres binaires divisibles par 2.
L'expression régulière représentant les nombres binaires divisibles par 2 est donnée par :
(0|1)*0
2) En utilisant un algorithme vu dans le cours, écrire l’AFND associé à l'expression trouvée en 1).
Automate de 0
Automate de 1
Automate de (0|1)
18
Automate de (0|1)*
L'ensemble des états est fermé. On trace maintenant l'automate Y qui possède les états :
19
y2=tr(y2,1)= ↋-f(4)={ 1,2,3,4,6 } : état intermédiaire.
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
S→ Sd
S→ab
A→ac
La récursivité dans cette grammaire se trouve à la production 1. Pour l'éliminer, on transforme cette
grammaire comme suit :
S→ abS1
S1→dS1|↋
A→ac
Exercice 3
On considère l’expression régulière suivante :
ab*c
1) Donner la GHC qui lui est équivalente.
AaBc
BBb|↋
CbD
DDa|↋
EA|C
20
AaBc
BBb|↋
CbD
DDa|↋
Exercice 4
Soit la grammaire G définie par
S AS | b
A SA | a
1) Donner la dérivation droite de la chaîne ababab.
La dérivation droite de la chaîne ababab est comme suit (les éléments dérivés sont soulignés)
S=>AS =>Abab
=>Ab =>SAbab
=>SAb =>Sabab
=>Sab =>ASabab
=>ASab =>Ababab
=>ababab
Exercice 5
On considère la grammaire suivante :
S ABBAc
Aa
A ε
Bb
B ε
1) Chercher premiers et suivants des non terminaux.
21
A aε abc
B bε abc
Production Prédiction
S ABBAc abc
Aa a
A ε abc
Bb b
B ε abc
NT\T a b c
S S ABBAc S ABBAc S ABBAc
A Aa A ε A ε
A ε
B B ε Bb B ε
B ε
Cette grammaire n'est pas LL(1), car il existe des cases qui contiennent plusieurs productions.
22
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique
Partie 1
3) Expliquer l'abréviation LL(1).
4) Donner l'arbre abstrait de l'expression : y=a=b+c*d+n.
5) Compléter le schéma suivant
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
17) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LR utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.
18) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LL utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.
23
22) Une grammaire LR(0) peut être
a) récursive à gauche.
b) récursive à droite.
c) ambiguë.
23) Lors du processus de reconnaissance d'une chaîne en analyse LL, la production à choisir
dépend
a) d'un terminal et d'un non terminal.
b) de deux terminaux.
c) de deux non terminaux.
Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABCt
(2) Bb
(3) Cc
(4) C d
6) Indiquer les terminaux, les non-terminaux et l'axiome.
Production Prédiction
ABCt
Bb
Cc
Cd
24
9) Compléter la table d'analyse suivante :
NT\T t b c d
A
B
C
Exercice 3
Soit la grammaire hors contexte suivante :
(1) A → A p B
(2) A → A s B
(3) A → B
(4) B → e
(5) B → f
25
Soit les tables d’analyse LR associée à cette grammaire :
T entrée S P A
26
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Expliquer l'abréviation LL(1).
=(y,=(a,+(+(b,*(c,d)),n)))
y =
+
a
+ n
b
*
c d
27
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LR utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.
2) Au début de la reconnaissance d'une chaîne dans une analyse syntaxique LL utilisant une
pile, la pile contient
a) l'axiome.
b) un état.
c) la chaîne à analyser.
28
a) l'axiome est un terminal.
b) l'axiome est un non terminal.
c) a) et b) selon la nature de la grammaire.
Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABCt
(2) Bb
(3) Cc
(4) C d
Production Prédiction
ABCt b
Bb b
Cc c
Cd d
NT\T t b c d
A A→BCt
B B→b
C C→c C→d
Oui cette grammaire est LL(1), car chaque entrée de sa table d'analyse contient une seule
valeur.
29
6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne bct.
S→bS1
S1→aS1|ε
Exercice 3
Soit la grammaire hors contexte suivante :
(1) A → A p B
(2) A → A s B
(3) A → B
(4) B → e
(5) B → f
30
Soit les tables d’analyse LR associée à cette grammaire :
T entrée S P A
0 esepc 0 d1
1 sepc 0,1 r4
4 sepc 4 0,4 r3
3 sepc 4,3 0,3 d6
6 epe 4,3 0,3,5 d1
1 pe 4,3 0,3,6,1 r4
8 pe 4,3,4 0,3,6,8 r2
3 pe 4,3,4,2 0,3 d5
5 e 4,3,4,2 0,3,5 d1
1 $ 4,3,4,2 0,3,5,1 r4
7 $ 4,3,4,2,4 0,3,5,7 r1
3 $ 4,3,4,2,4,1 0,3 ACC
31
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Expliquer l'abréviation LR(0).
2) Donner l'arbre abstrait de l'expression : y=a*b+c/d+n.
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Un automate fini déterministe est constitué de
a) 3-uplets
b) 4-uplets
c) 5-uplets
5) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
6) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
8) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.
32
9) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABtD
(2) Bb
(3) Bc
(4) D d
1) Indiquer les terminaux, les non-terminaux et l'axiome.
Production Prédiction
NT\T b t c d
A
B
D
33
6) En complétant le tableau suivant, donner le processus de reconnaissance de la chaîne ctd.
Exercice 3
Soit l'automate suivant que l'on nomme A :
A/
1) Donner l'alphabet de l'automate A.
B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(0).
2) Calculer y1=T(y0,a).
3) Calculer T(y1,a).
4) Construire maintenant l'automate Y dont les états sont les yi trouvés précédemment.
34
Université Ibn Zohr SMI5/LPII-2017-2018
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Expliquer l'abréviation LR(0).
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Un automate fini déterministe est constitué de
a) 3-uplets
b) 4-uplets
c) 5-uplets
5) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
6) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
8) Un lexème est
a) un mot du programme.
b) une unité lexicale.
c) une instance d'unité lexicale.
9) Dans un AFND
a) l'état initial est toujours différent de l'état final.
b) l'état initial est toujours égal à l'état final.
c) l'état initial ne dépend pas de l'état final.
Partie 3
Exercice 1
On considère la grammaire hors contexte suivante :
(1) ABtD
(2) Bb
(3) Bc
(4) D d
- Terminaux ={b, c, d}
- Non_Terminaux={A, B, D}
36
- Axiome={A}
Production Prédiction
ABtD b, c
Bb b
Bc c
Dd d
NT\T b t c d
A ABtD ABtD
B Bb Bc
D Dd
Oui, cette grammaire est LL(1) car chaque case de sa table d'analyse contient une seule
production.
37
At
Ar
Cette grammaire qui contient une récursivité au niveau de A à la première production, peut
s'écrire :
A As
At|r
Elle devient :
A(t|r) A1
A1sA1
Exercice 3
Soit l'automate suivant que l'on nomme A :
A/
1) Donner l'alphabet de l'automate A.
Cet automate n'est pas déterministe car il contient une transition "↋" entre les états 0 et 1.
Etat\symbole a ↋
0 1
1 1
38
5) Donner en termes d'expressions régulières le langage défini par l'automate A.
L'expression régulière est donnée par : ε|a* qui est équivalente, après réduction à :
a*
B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(0).
y0=ε-f(0) ={0,1}.
2) Calculer y1=T(y0,a).
y1=T(y0,a)= ε-f(1)={1}.
3) Calculer T(y1,a).
T(y1,a)= ε-f(1)=y1.
4) Construire maintenant l'automate Y dont les états sont les yi trouvés précédemment.
39
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Spécifier les 5 éléments d'un automate.
2) Donner l'arbre abstrait de l'expression : y=b=c+d/n.
3) Quel est l'objectif de l'analyse lexicale dans la compilation ?
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Une expression régulière définit
a) la syntaxe d’un langage
b) les mots d’un langage.
c) le lexique d’un langage.
2) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur ≤ 1.
c) a une longueur quelconque.
3) Un automate fini déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égal à un état final.
4) Un automate fini non déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égale un état final.
5) Un automate fini non déterministe accepte
a) un seul état initial.
b) plusieurs états initiaux
c) 2 états initiaux.
6) Un automate fini non déterministe accepte
a) un seul état final.
b) plusieurs états finaux.
c) 2 états finaux.
7) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
8) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
9) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
10) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
40
c) est synonyme de lexème.
Partie 3
Exercice 1
Soit la grammaire hors contexte suivante :
(1) S if S E
(2) S other
(3) E else S endif
(4) E endif
Production Prédiction
S if S E
S other
E else S endif
E endif
41
$ $ .......
$ $
$ $
$ $
Exercice 2
Soit la grammaire hors contexte suivante :
X → X p Y | X → X s Y |Y
Y → e|f
1) Donner la dérivation droite de la chaine e s e p e.
2) Tracer l'arbre d'analyse associée à cette dérivation.
Exercice 3
Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :
Exercice 4
En utilisant la technique vue dans le cours, vérifier si les mots suivants font partie du langage
défini par l'automate A:
1) aaddc
2) aaac
Exercice 5
Soit l'automate défini par la table de transition suivante. Il possède 0 comme état initial et 1
comme état final.
Etat/Symbol a b
0 0,1
1 1 1
Pour transformer cette automate en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
2) Calculer y0=ε-f(0).
3) Calculer y1=T(y0,a).
4) Calculer T(y1,a).
42
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Spécifier les 5 éléments d'un automate.
=(y, =(b,+(c,/(d,n))))
43
- Regrouper les caractères pour en former des unités lexicales
- Présenter les unités lexicales trouvées à l'analyseur syntaxique
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Une expression régulière définit
a) la syntaxe d’un langage
b) les mots d’un langage.
c) le lexique d’un langage.
2) Le symbole d'un alphabet
a) a toujours une longueur égale 1.
b) a toujours une longueur ≤ 1.
c) a une longueur quelconque.
3) Un automate fini déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égal à un état final.
4) Un automate fini non déterministe
a) peut accepter la chaine ε.
b) peut accepter la transition ε.
c) peut avoir un état initial égale un état final.
5) Un automate fini non déterministe accepte
a) un seul état initial.
b) plusieurs états initiaux
c) 2 états initiaux.
6) Un automate fini non déterministe accepte
a) un seul état final.
b) plusieurs états finaux.
c) 2 états finaux.
7) Le langage d'un traducteur
a) doit être différent du langage du programme source.
b) doit être différent du langage du programme cible.
c) est un langage quelconque.
8) Un AFD permet
a) une analyse lexicale.
b) une analyse sémantique.
c) une analyse syntaxique.
9) Un analyseur lexical
a) sert uniquement à reconnaître les mots d’un langage.
b) sert uniquement à reconnaître les instructions d’un langage.
c) A la fois a) et b).
10) Une unité lexicale
a) est instance de lexème.
b) sert à générer les lexèmes.
c) est synonyme de lexème.
Partie 3
Exercice 1
Soit la grammaire hors contexte suivante :
(1) S if S E
(2) S other
44
(3) E else S endif
(4) E endif
45
Exercice 2
Soit la grammaire hors contexte suivante :
X → X p Y | X s Y |Y
Y → e|f
X => X p Y
=> X p e
=> X s Y p e
=> X s e p e
=> Y s e p e
=> e s e p e
Exercice 3
Donner l’expression régulière qui définit les chaînes reconnaissables par l’automate suivant :
↋|10*1
Exercice 4
En utilisant la technique vue dans le cours, vérifier si les mots suivants font partie du langage
défini par l'automate A ci-dessus :
1) aaddc
Donc la chaine aaddc est bien reconnue car l'état nommé 2 est un état final.
2) aaac
46
Exercice 5
Soit l'automate défini par la table de transition suivante. Il possède 0 comme état initial et 1
comme état final.
Etat/Symbol a b
0 0,1
1 1 1
Pour transformer cette automate en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
2) Calculer y0=ε-f(0).
…………………………………………………………………………………………
3) Calculer y1=T(y0,a).
…………………………………………………………………………………………..
4) Calculer T(y1,a).
…………………………………………………………………………………………..
47
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Donner un exemple de GHC constituée de trois productions, deux non terminaux et de
trois terminaux.
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Pour une grammaire hors contexte
a) on doit avoir au moins un terminal.
b) on doit avoir plus de deux terminaux.
c) il n'est pas nécessaire d'avoir de terminaux.
2) Pour une grammaire hors contexte
a) on doit avoir au moins une production.
b) on doit avoir plus de deux productions.
c) il n'est pas nécessaire d'avoir de productions.
3) Une grammaire hors contexte est constituée de
a) 3-uplets.
b) 4-uplets.
c) 5-uplets.
4) Un lexème est un
a) est un terminal.
b) est un non terminal.
c) est une production.
5) Une unité lexicale
a) est un terminal.
b) est un non terminal.
c) est une production.
6) Pour une grammaire hors contexte
a) on doit avoir au moins un axiome.
b) on doit avoir plus de deux axiomes.
c) il n'est pas nécessaire d'avoir d'axiome.
7) Dans une grammaire hors contexte
a) l'axiome est un terminal.
b) l'axiome n'est pas un terminal.
c) (a) ou (b) relativement à la grammaire.
8) Dans une grammaire hors contexte
a) l'axiome est un non terminal.
b) l'axiome n'est pas un non terminal.
c) (a) ou (b) relativement à la grammaire.
9) Dans une grammaire hors contexte
a) une sentence est constituée de terminaux.
b) une sentence est constituée de non-terminaux.
c) une sentence est constituée de terminaux et de non-terminaux.
10) Dans une grammaire hors contexte
48
a) une forme sentencielle est constituée de terminaux.
b) une forme sentencielle est constituée de non-terminaux.
c) une forme sentencielle est constituée de terminaux et de non-terminaux.
Partie 3
Exercice 1
Nous donnons la grammaire hors contexte suivante :
(1) XY
(2) XaY
(3) YYbZ|c
(4) Z d
1) Indiquer les terminaux, les non-terminaux et l'axiome.
Production Prédiction
Exercice 3
Soit l'automate A défini par la table de transition suivante. Il possède a comme état initial et b
comme état final.
Etat/Symbol 1 2
a a b
b a,b
A/
1) Pourquoi cet automate n'est pas déterministe ?
B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(a).
2) Calculer T(y0,1).
3) Calculer T(y0,2).
50
Université Ibn Zohr SMI5/LPII-2018-2019
Faculté des Sciences Agadir
Département Informatique
Partie 1
1) Donner un exemple de GHC constituée de trois productions, deux non terminaux et de
trois terminaux.
Avec
A : axiome, qui est non terminal ;
B : un non terminal ;
a, et c sont des termianaux.
Le schéma général d'un compilateur est donné par le schéma suivant. Pour les détails de
chaque phase, regarder le cours.
51
52
Partie 2
Conserver dans (1) à (10) la ou les assertions justes.
1) Pour une grammaire hors contexte
a) on doit avoir au moins un terminal.
b) on doit avoir plus de deux terminaux.
c) il n'est pas nécessaire d'avoir de terminaux.
2) Pour une grammaire hors contexte
a) on doit avoir au moins une production.
b) on doit avoir plus de deux productions.
c) il n'est pas nécessaire d'avoir de productions.
3) Une grammaire hors contexte est constituée de
a) 3-uplets.
b) 4-uplets.
c) 5-uplets.
4) Un lexème est un
a) est un terminal.
b) est un non terminal.
c) est une production.
5) Une unité lexicale
a) est un terminal.
b) est un non terminal.
c) est une production.
6) Pour une grammaire hors contexte
a) on doit avoir au moins un axiome.
b) on doit avoir plus de deux axiomes.
c) il n'est pas nécessaire d'avoir d'axiome.
7) Dans une grammaire hors contexte
a) l'axiome est un terminal.
b) l'axiome n'est pas un terminal.
c) (a) ou (b) relativement à la grammaire.
8) Dans une grammaire hors contexte
a) l'axiome est un non terminal.
b) l'axiome n'est pas un non terminal.
c) (a) ou (b) relativement à la grammaire.
9) Dans une grammaire hors contexte
a) une sentence est constituée de terminaux.
b) une sentence est constituée de non-terminaux.
c) une sentence est constituée de terminaux et de non-terminaux.
10) Dans une grammaire hors contexte
a) une forme sentencielle est constituée de terminaux.
b) une forme sentencielle est constituée de non-terminaux.
c) une forme sentencielle est constituée de terminaux et de non-terminaux.
Partie 3
Exercice 1
Nous donnons la grammaire hors contexte suivante :
(1) XY
(2) XaY
(3) YYbZ|c
(4) Z d
Production Prédiction
XY c
XaY a
YYbZ c
Yc c
Zd d
a b c d
X XaY XY
Y YYbZ
Yc
Z Zd
Cette grammaire n'est pas LL(1), car la cellule (Y,c) contient deux règles.
54
Exercice 2
Eliminer la récursivité gauche de la grammaire suivante :
A→ Xa
X→Xb|c|d
Exercice 3
Soit l'automate A défini par la table de transition suivante. Il possède a comme état initial et b
comme état final.
Etat/Symbol 1 2
a a b
b a,b
A/
1) Pourquoi cet automate n'est pas déterministe ?
Cet automate n'est pas déterministe car la case (b,1) contient deux états.
1*(21*)+
B/
Pour transformer l'automate A en automate fini déterministe nommé Y, on vous demande de
répondre aux questions suivantes :
1) Calculer y0=ε-f(a).
y0=ε-f(a)={a}.
C'est l'état initial de l'automate Y.
2) Calculer T(y0,1).
T(y0,1)=ε-f(tr(a,1))= ε-f(a)=y0.
3) Calculer T(y0,2).
T(y0,2)=ε-f(tr(a,2))= ε-f(b)={b}=y1.
T(y2,1)=ε-f(tr((a,b),1))= ε-f(a,b)={a,b}=y2.
T(y2,2)=ε-f(tr((a,b),2))= ε-f(b)={b}=y1.
55
Les états finaux dans l'automate Y sont y1={b} et y2={a, b}.
56