Vous êtes sur la page 1sur 48

UNIVERSITE ABDELMALEK ESSAADI

FILIERE : SMI
FACULTE DES SCIENCES DE TETOUAN

Parcours : Informatique

Annales des Examens

COMPILATION

Année Universitaire : 2020 - 2021

Professeure Souad AMJAD

Département d’Informatique

S. Amjad Page 1
Examen
Janvier 2016

Exercice 1
1) Soient a et b deux expressions rationnelles. Montrer que :
b+ (a*b* + ) b = b (b*a* + ) b+

2) Quel est le langage reconnu par la grammaire suivante ?

S  bA | bZ
A  aA | cS | aZ
Z  bZ | c

Exercice 2
Déterminiser l’AFN ci-dessous.

Exercice 3
Minimiser l’automate suivant, tracer le graphe de l’AFD minimal et donner le langage
reconnu.

 a B
1 2 3
2 4 2
* 3 5 3
*4 2 4
5 3 5
6 4 5

Exercice 4

S. Amjad Page 2
Soit la grammaire G = ({a, b, c, d, e}, {A, B, C, D}, A, P) où P :

A  BCD
B  aCD | 
C  bB | cD | 
D  dD | e

1) Calculer les ensembles PREMIER et SUIVANT de tous les non-terminaux.


2) Donner la table d’analyse.
3) Vérifier si les mots babdee et bbabcde sont acceptés par cette grammaire. Si oui donner
les arbres correspondants.

S. Amjad Page 3
Solution

Exercice 1

1) b+(a*b* + )b = bb*(a*b* + )b


= b(b*a*b* + b*)b
= b(b*a* + )b*b
= b(b*a* + )b+

2) La grammaire ainsi définie est rationnelle. Donc, le langage reconnu est obtenu par la
résolution du système ci-dessous :
S = bA + bZ
A = aA + cS + aZ
Z = bZ + c
= b*c
A = aA + cS + ab*c
= a*(cS + ab*c)
S = bA + bZ
= ba*(cS + ab*c) + bb*c
= ba*cS + ba*ab*c + bb*c
= ba*cS + (ba+ + b)b*c
= ba*cS + b(a+ + 1)b*c
= ba*cS + ba*b*c
= (ba*c)*(ba*b*c) est le langage.

Exercice 2
L’automate déterministe est :

a b
→ *14 12 3
12 12 3
*3 4
*4 2 3

S. Amjad Page 4
2 1
1 12 3

Exercice 3

Remarquons que l’état 6 est un état inutile. Il va donc être supprimé.

1
2 Y
3 X X
4 X X
5 Y X X
1 2 3 4 5

Les états 2 et 5 sont équivalents. 3 et 4 le sont également.

La table de transition de l’automate minimal est :

a b
1 25 34
25 34 25
* 34 25 34

Le graphe est le suivant :


b
b
a
a
2 5 34
1 a
b

Le langage reconnu par l’automate minimal est :

X = aY + bZ
Y = bY + aZ
Z = aY + bZ + ε
= b*(aY + ε)
Y = bY + aZ

S. Amjad Page 5
= bY + ab*(aY + ε)
= (b + ab*a)Y + ab*
= (b + ab*a)*ab*
Z = b*(aY + ε)
= b*aY + b*
= b*a(b + ab*a)*ab* + b*
= b*a(b + ab*a)*ab* + b*
X = aY + bZ
= a(b + ab*a)*ab* + b+a(b + ab*a)*ab* + b+ est le langage.

Exercice 4

1) Les ensembles premiers et suivant des non-terminaux sont représentés dans le tableau ci-
dessous :

non-terminal premier Suivant


A a, c, b, e, d $
B a, ε c, b, e, d
C ε, c, b e, d
D e, d $, c, b, e, d

2) La table d’analyse est :

a b c d e $
A A → BCD A → BCD A → BCD A → BCD A → BCD
B B → aCD B→ε B→ε B→ε B→ε
C C → bB C → cD C→ε C→ε
D D → dD D→e

3) L’analyseur syntaxique est :

P E S
$A babdee $ A → BCD
$DCB babdee $ B →ε
$DC babdee $ C → bB
$DBb babdee $
$DB abdee $ B → aCD

S. Amjad Page 6
$DDCa abdee $
$DDC bdee $ C → bB
$DDBb bdee $
$DDB dee $ B→ε
$DD dee $ D → dD
$DDd dee $
$DD ee $ D →e
$De ee $
$D e$ D →e
$e e$
$ $ Reconnu

P E S
$A bbabcde $ A → BCD
$DCB bbabcde $ B →ε
$DC bbabcde $ C → bB
$DBb bbabcde $
$DB babcde $ B →ε
$D babcde $ Echec

S. Amjad Page 7
Contrôle
Février 2017

Exercice 1
1) Montrer que (xy)*x = x(yx)*
2) Soit la grammaire G définie par : ({X, Y, Z}, {0, 1}, X, P) où
P : X → 0X│1Y│1Z │0 Y → 0Y│1Y Z → 1Z │0Y │00
Quel est le langage généré par cette grammaire ?

Exercice 2
1) Déterminiser l’AFN suivant :

a b
→0 01 12
1 1 12
→*2 2

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({a, b, c, d}, {A, B, C}, A, P)
Où P : A → ABC │a B → bB │ d C → cC │

Quel est le comportement syntaxique du mot abbdcc ? S’il est accepté, tracer l’arbre
correspondant.

S. Amjad Page 8
Solution

Exercice 1
1) Montrons que (xy)*x = x(yx)*
(xy)*x est solution de l’équation X = (xy)X + x
(xy)x(yx)* + x = ? x(yx)*
xyx(yx)* + x = x(yx)+ + x = x((yx)+ + 1) = x(yx)*
2) La grammaire G est de type 3. Pour trouver donc le langage engendré par cette grammaire,
il suffit de résoudre le système ci-dessous.
X = 0X +1Y + 1Z +0
Y = 0Y +1Y = 
Z = 1Z +0Y +00
Z = 1Z + 00 = 1*00
X = 0X + 11*00 +0 = 0*(1+00 + 0) le langage reconnu.

Exercice 2
1) L’automate déterministe est :

a b
→*02 01 12
01 01 12
*12 1 12
1 1 12

2) Le diagramme de minimisation est représenté ci-dessous :

02
01 X
12 X
1 X X
02 01 12 1

Après minimisation les états 02 et 12 sont équivalents. Même chose pour les états 01 et 1.

S. Amjad Page 9
La graphe de l’automate minimal est :
b
a
a
1 01 02
12
b

3) Le langage reconnu par cet automate est obtenu par la résolution de ce système.

X1 = aX2 + bX1 + 
X2 = aX2 + bX1
= a*bX1
X1 = aa*bX1 + bX1 + 
= (a+b +b)X1 + 
= a*bX1 + 
= (a*b)* est le langage reconnu par l’automate

Exercice 3

La grammaire est récursive. Il faut éliminer cette récursivité pour qu’elle soit de type LL(1)
A → aA’ A’ → BCA’ │ B → bB │ d C → cC │

non-terminal premier Suivant


A A $
A’ ε, d, b $
B d, b c, d, b, $
C ε, c d, b, $

La table d’analyse est :

a b c d $
A A → aA’
A’ A’ → BCA’ A’ → BCA’ A’ → ε
B B → bB B→d

S. Amjad Page 10
C C→ε C → cC C → ε C→ε

L’analyseur lexical est :

P E S

$A abbdcc $
A → aA’
$A’a abbdcc $
$A’ bbdcc $
A’ → BCA’
$A’CB bbdcc $
B → bB
$A’CBb bbdcc $
$A’CB bdcc $
B → bB
$A’CBb bdcc $
$A’CB dcc $
B →d
$A’Cd dcc $
$A’C cc $
C → cC
$A’Cc cc $
$A’C c$
C → cC
$A’Cc c$
$A’C $
C →
$A’ $
A’ → 
$ $
Reconnu

S. Amjad Page 11
Rattrapage
Mars 2017

Exercice 1

Montrer que le langage suivant est irrégulier :{anbmcn+1 / n, m  N}

Exercice 2
1) Déterminiser l’AFN suivant :

a b
→*0 1 2
1 3
2 4
*3 5
*4
5 0

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({0, 1, 2, 3}, {A, B, C}, A, P)
Où P : A → A0A1B │B2C B → 01A2B │ 011C C → 3B1C │

Quel est le comportement syntaxique des mots 011230111 et 0113210? S’ils sont acceptés,
tracer les arbres correspondants.

S. Amjad Page 12
Solution

Exercice 1

Nous allons supposer que le langage {anbmcn+1 / n, m  N} est régulier. Donc, il vérifie le
lemme de l’étoile.
Soit Z = aNbNcN+1. La longueur de Z = 3N + 1 > N, Z= uvw tel que u = ap , v = aq et
w = aN-(p+q) bNcN+1
uviw = aN+q(i-1) bNcN+1
Pour que uviw appartienne au langage il faut que i soit égale à 1. Pour i plus grand que 1 on
aura plus de a que c. Absurde.

Exercice 2
1) L’automate déterministe est :

a b
→*0 12
12 34
*34 5
5 0

2) Le diagramme de minimisation est représenté ci-dessous :

0
12 X
34 X
5 X X
0 12 34 5

S. Amjad Page 13
Après minimisation les états 0 et 34 sont équivalents. Même chose pour les états 12 et 5.

a
5 12 0
34
b

4) Le langage reconnu par cet automate est obtenu par la résolution de ce système.

X1 = aX2 + 
X2 = bX1
X1 = abX1 +  = (ab)* est le langage reconnu.

Exercice 3

La grammaire n’est aps de type LL(1) car elle est récursive et non factorisée.
A → B2CA’ A’ → 0A1BA’ │ B → 01B’ B’ → A2B │ 1C C → 3B1C │

non-terminal premier Suivant


A 0 $, 1, 2
A’ 0, ε $, 1, 2
B 0 2, 0, 1, $
B’ 1, 0 2, 0, 1, $
C ε, 3 0, $, 1, 2

La table d’analyse est :

0 1 2 3 $
A A → B2CA’
A’ A’ → 0A1BA’ A’ → ε A’ → ε A’ → ε
B B → 01B’
B’ B’ → A2B B’ → 1C
C C→ε C→ε C→ε C → 3B1C C→ε

S. Amjad Page 14
L’analyseur syntaxique est :

P E S
$A 011230111 $ A → B2CA’
$A’C2B 011230111 $ B → 01B’
$A’C2B’10 011230111 $
$A’C2B’ 1230111 $ B’ → 1C
$A’C2C1 1230111 $
$A’C2C 230111 $ C →
$A’C2 230111 $
$A’C 30111 $ C → 3B1C
$A’C1B3 30111 $
$A’C1B 0111 $ B → 01B’
$A’C1B’01 0111 $
$A’C1B’ 11 $ B’ → 1C
$A’C1C1 11 $
$A’C1C 1$ C →
$A’C1 $
$A’C $ C →
$A’ $ A’ → 
$ $ Reconnu

P E S
$A 0113210 $ A → B2CA’
$A’C2B 0113210 $ B → 01B’
$A’C2B’10 0113210 $
$A’C2B’ 13210 $ B’ → 1C
$A’C2C1 13210 $
$A’C2C 3210 $ C → 3B1C
$A’C2C1B3 3210 $
$A’C2C1B 210 $ Echec

S. Amjad Page 15
Contrôle
Janvier 2018

Exercice 1
1) Est ce que les langages suivants sont rationnels :
M = {0i1j / i > j, i, j  N} et L = {anbn / n < 42131 - 1}?
2) Soit un alphabet A = {0, 1}, montrer que :
(1 + 00*1) + (1 + 00*1) (0 + 10*1)*(0 + 10*1) = 0*1(0 + 10*1)*

Exercice 2
1) Déterminiser l’AFN suivant :

a b
0 0 3
*1 1 23
2 1 3
3 1 2

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({a,b,c,d,e}, {S,A,B}, S, P)
Où P : S → abcAdB│abBbA │ab A → bA│ B → dB│e
Quel est le comportement syntaxique du mot abcbdde ? S’il est accepté, tracez l’arbre
correspondant.

S. Amjad Page 16
Solution

Exercice 1
1) Le langage L = {anbn / n < 42131 - 1}est rationnel car il est fini.
M = {0i1j / i > j, i, j  N} ne l’est pas. En effet, nous allons appliquer le lemme de la pompe.
Supposons donc que M est rationnel et prenons z = 0p+1 1p ; il existe u, v et w tel que z = uvw
avec u = 0p, v = 0 et w = 1p la longueur de z est 2p+1 et de uv est p+1 = N
uviw = 0p 0i 1p
Pour i = 0 uviw = 0p1p  M absurde

2) Soit un alphabet A = {0, 1},


(1 + 00*1) + (1 + 00*1) (0 + 10*1)*(0 + 10*1) = (1 + 00*1) + (1 + 00*1) (0 + 10*1)+
= (1 + 00*1)(ε + (0 + 10*1)+)
= (1 + 00*1)(0 + 10*1)*
= (ε + 0+)1(0 + 10*1)*
= 0*1(0 + 10*1)* CQFD

Exercice 2

1) L’automate déterministe est :

a b
→03 01 23
*01 01 23
23 1 23
*1 1 23

2) Le diagramme de minimisation est représenté ci-dessous :

03
01 X
23 X
1 X X
03 01 23 1

S. Amjad Page 17
Les états 23 et 03 sont équivalents. Les états 1 et 01 le sont aussi.
b
b
03 01 a
23 1
a

3) Le langage reconnu par cet automate est obtenu par la résolution de ce système.

X1 = aX2 + bX1
X2 = aX2 + bX1 + 
= a*(bX1 + )
X1 = a a*(bX1 + ) + bX1
= (a+b +b)X1 + a+ = a*bX1 + a+ = (a*b)*a+ est le langage reconnu par l’automate.

Exercice 3
La grammaire n’est pas de type LL(1) acr elle est non factorisée.
S → abS’ S’ → cAdB │BbA │ A → bA │  B → dB │e

non-terminal premier Suivant


S a $
S’ , c, e, d $
A , b d, $
B e, d b, $

La table d’analyse est :

a b c d e $
S S → abS’
S’ S’ → cAdB S’ → BbA S’ → BbA S’ → 
A A → bA A→ A→
B B → dB B→e

L’analyseur syntaxique est :

P E S

S. Amjad Page 18
$S abcbdde $ S → abS’
$S’ba abcbdde $
$S’ cbdde $ S’ → cAdB
$BdAc cbdde $
$BdA bdde $ A → bA
$BdAb bdde $
$BdA dde $
$Bd dde $ A →
$B de $
$Bd de $ B → dB
$B e$
$e e$ B →e
$ $ Reconnu

S. Amjad Page 19
Rattrapage
Février 2018

Exercice 1
Soit un alphabet A = {a, b, c}

a) Montrer que : (a + b)* = (a*b)*a*


b) Est-ce que le langage L = {ambncm+n / m, n  N} est rationnel ?

Exercice 2
1) Déterminiser l’AFN suivant :

a b
0 0 1 3
1 1 23
*2 1 2
3 3 3

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({a,b,c,d}, {X,Y}, X, P)
Où P : X → XcYd│ bYaXb │c Y→ cbXd │cY │ c
Quel est le comportement syntaxique du mot bcacccdb ? S’il est accepté, tracez l’arbre
correspondant.

S. Amjad Page 20
Solution

Exercice 1

1) Montrons que : (a + b)* = (a*b)*a*


(a + b)* est solution de l’équation X = X(a + b) + 1
(a*b)*a*(a + b) + 1 = (a*b)*a*a + (a*b)*a*b + 1
= (a*b)*a+ + (a*b)+ + 1
= (a*b)*a+ + (a*b)*
= (a*b)*(a+ + 1) = (a*b)*a*
(a*b)*a* est également solution de la même équation. D’après Arden, la solution est
unique. D’où (a + b)* = (a*b)*a*
2) Supposons que le langage L = {ambncm+n / m, n  N} est rationnel. Donc, il vérifie le
lemme de l’étoile.
Prenons z = ambmc2m, la longueur z est 4m > m, donc z = uvw tel que :
u = ap , V = aq , w = am-(p+q)bmc2m
uviw = am+q(i-1) bmc2m appartient au langage dans le cas où m+q(i-1) +m = 2m
Pour i >1, uviw n’appartient pas au langage. Contradiction

Exercice 2
1) L’automate déterministe est :

A b
→0 01 3
01 01 23
3 3 3
*23 13 23
13 13 23

2) Le diagramme de minimisation est représenté ci-dessous après avoir supprimé l’état 3 qui
est inutile :

S. Amjad Page 21
0
01 Y
23 X X
13 Y X
0 01 23 13

Les états 01 et 13 sont équivalents.

L’automate minimal est représenté par le graphe suivant :

b
a
b
a 01 23
0 13
a

3) Le langage reconnu par cet automate est obtenu par la résolution de ce système.

X0 = a X1
X1 = aX1 + bX2
X2 = bX2 + aX1 + 
= b*(aX1 + )
X1 = b b*(aX1 + ) + aX1
= (b+a +a)X1 + b+
= b*aX1 + b+
= (b*a)*b+
Le langage est X0 = aX1 = a(b*a)*b+
Ou remarquons que X2 = X1 + 
donc X1 = aX1 + bX2
= aX1 + b(x1 + )
= (a + b)X1 + b
= (a + b)*b
Le langage est donc X0 = a(a + b)*b
Les deux expressions sont équivalentes et engendrent le même langage.

S. Amjad Page 22
Exercice 3
La grammaire ainsi définie est récursive et non factorisée. Donc, elle n’est pas de type LL(1).
Il faut donc la rendre non récursive et factorisée.

X → bYaXbX’│cX’ X’ → cYdX’ │  Y → cY’ Y’ → bXd │Y│ 

non-terminal Premier Suivant


X b, c $, b, d
X’ , c $, b, d
Y c a, d
Y’ , b, c a, d

La table d’analyse est :

a b c d $
X X → bYaXbX’ X → cX’
X’ X’ →  X’ → cYdX’ X’ →  X’ → 
Y Y → cY’
Y’ Y’ →  Y’ → bXd Y’ → Y Y’ → 

L’analyseur syntaxique est :

P E S
$X bcacccdb $ X → bYaXbX’
$X’bXaYb bcacccdb $
$X’bXaY cacccdb $ Y → cY’
$X’bXaY’c cacccdb $
$X’bXaY’ acccdb $ Y’ → 
$X’bXa acccdb $
$X’bX cccdb $ X → cX’
$X’bX’c cccdb $
$X’bX’ ccdb $ X’ → cYdX’
$X’bX’dYc ccdb $
$X’bX’dY cdb $ Y → cY’

S. Amjad Page 23
$X’bX’dY’c cdb $
$X’bX’dY’ db $ Y’ → 
$X’bX’d db $
$X’bX’ b$ X’ → 
$X’b b$
$X’ $ X’ → 
$ $ Reconnu

S. Amjad Page 24
Contrôle
Janvier 2019

Exercice 1

Soit un alphabet A = {0,1}


1) Est-ce que les langages L = (0 + 1)*1 + 0* et M = (1 + 0)(0* 1)* définis sur A sont
équivalents ?
n n
2) Est-ce que le langage P = {(01) (10) / n  N}est rationnel ?
3) Montrer que (0 + 1)* = (0*1)*0*

Exercice 2
1) Déterminiser l’AFN suivant :

 0 1
A A B
*B B D
C C B C
D C B B

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({0,1,2}, {S,T}, S, P)
Où P : S → T0│S2S1 T → 011S│012T│01
Quel est le comportement syntaxique du mot 0110100 ? S’il est accepté, tracez l’arbre
correspondant.

S. Amjad Page 25
Solution

Exercice 1

1) les langages L = (0 + 1)*1 + 0* et M = (1 + 0)(0* 1)* ne sont pas équivalents car   L et


 M.
n n
2) En prenant a = 01 et b = 10, le langage P devient {a b / n  N}qui est non régulier (voir
cours).
3) Montrons que (0 + 1)* = (0*1)*0*
(0 + 1)* est solution de l’équation X = X(0 + 1) + ε
(0*1)*0*(0 + 1) + ε = (0*1)*0*0 + (0*1)*0*1 + ε
= (0*1)*0+ + (0*1)+ + ε
= (0*1)*0+ + (0*1)*
= (0*1)*(0+ + ε)
= (0*1)*0* CQFD

Exercice 2
1) L’automate déterministe est :

0 1
→ ACD ABC BC
*ABC ABC BCD
*BC BC BCD
*BCD BC BCD

2) Le diagramme de minimisation est représenté ci-dessous :

ACD
*ABC X
*BC X
*BCD X
ACD ABC BC BCD

Les états ABC, BC et BCD sont équivalents.

S. Amjad Page 26
L’automate minimal est représenté par le graphe suivant :

ACD 0,1 ABC 0,1


BC
BCD

4) Le langage reconnu par cet automate est obtenu par la résolution de ce système.
X0 = (0 + 1) X1
X1 = (0 + 1) X1 +  = (0 + 1)*
X0 = (0 + 1)+ est le langage.

Exercice 3

S → T0S’ S’ → 2S1S’ │ T → 01T’ T’ → 1S │2T│ 

non-terminal premier Suivant


S 0 $, 1, 0
S’ 2, ε $, 1, 0
T 0 0
T’ ε, 2, 1 0

La table d’analyse est :

0 1 2 $
S S → T0S’
S’ S’ → ε S’ → ε S’ → 2S1S’ S’ → ε
T T → 01T’
T’ T’ → ε T’ → 1S T’ → 2T

L’analyseur syntaxique est :

P E S
$S 0110100 $ S → T0S’
$S’0T 0110100 $ T → 01T’
$S’0T’10 0110100 $

S. Amjad Page 27
$S’0T’ 10100 $ T’ → 1S
$S’0S1 10100$
$S’0S 0100$ S → T0S’
$S’0S’0T 0100 $ T → 01T’
$S’0S’0T’10 0100$
$S’0S’0T’ 00$ T’ → 
$S’0S’0 00$
$S’0S’ 0$ S’ → 
$S’0 0$ S’ → 
$S’ $ Reconnu
$ $

S. Amjad Page 28
Rattrapage
Février 2019

Exercice 1
1) Soit la grammaire G1 = ({0, b, c}, {S, X, Y, Z}, S, P) où P :
S  XYZ X  0Y | cZ | 0
Y  bX | b Z  0Z | c

Donner une dérivation à gauche et à droite du mot c00cb0b0c et l’arbre correspondant.


2) Donner le langage reconnu par la grammaire G2 = ({0, a, b}, {S, A, Z}, S, P) où P :
S  Ab | Za
A  A0 | Sa | Z0 | b
Z  Z0 | Za

Exercice 2
1) Déterminiser l’AFN suivant :

 0 1
*P Q S Q R
Q Q Q
R S P
S R P

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G = ({a, b, c, d, e, f}, {A, B, C, D}, A, P) où P :

A  BCD B  aC | bCD |  C  eB | cD | f D  dD | f

Quel est le comportement syntaxique des mots aecdff et acdfdc ? S’ils sont acceptés, donner
les arbres correspondants.

S. Amjad Page 29
Solution

Exercice 1
1) La dérivation à gauche du mot c00cb0b0c est :
S  XYZ  cZYZ  c0ZYZ  c00ZYZ  c00cYZ  c00cbXZ  c00cb0YZ 
c00cb0bZ  c00cb0b0Z  c00cb0b0c
La dérivation à droite est :
S  XYZ  XY0Z  XY0c  XbX0c  Xb0Y0c  Xb0b0c  cZb0b0c  c0Zb0b0c 
c00Zb0b0c  c00cb0b0c

2) La grammaire ainsi définie est une grammaire rationnelle. Le langage est obtenu donc en
résolvant le système suivant en utilisant Arden.
S = Ab + Z a
A = A0 + Sa + Z0 + b
Z = Z0 + Za = Ø
Le système deviendra :
S = Ab
A = A0 + Sa + b
A = (Sa + b)0*
S = Ab
= Sa0*b + b0*b = (b0*b)(a0*b)* : le langage reconnu par la grammaire.

Exercice 2
3) L’automate déterministe est :

0 1
→ *P QS QR
QS QR QP
QR QS QP
*QP QS QR

4) Le diagramme de minimisation est représenté ci-dessous :

S. Amjad Page 30
P
QS X
QR X
QP X X
P QS QR QP

Les états P et QP sont équivalents ainsi que les états QR et QS.

0,1 QS 0
P QR
QP
1

5) Le langage reconnu par cet automate est obtenu par la résolution de ce système.
X0 = (0 + 1) X1 + 
X1 = 0X1 + 1 X0
On applique Arden à X1 = 0*1X0
X0 =  + (0 + 1)0*1X0 = ((0 + 1)0*1)* le langage reconnu.

Exercice 3
La grammaire ainsi définie est une grammaire de type LL(1).

non-terminal Premier Suivant


A a, b, f, c, e $
B a, ε, b f, c, e, d
C f, c, e f, d, c, e
D f, d $, f, c, e, d

La table d’analyse est représentée ci-dessous :

a b c d e f $
A A → BCD A → BCD A → BCD A → BCD A → BCD
B B → aC B → bCD B→ε B→ε B→ε B→ε
C C → cD C → eB C→f
D D → dD D→f

S. Amjad Page 31
L’analyseur syntaxique dirigé par la table est :

P E S
$A aecdff $ A → BCD
$DCB aecdff $ B → aC
$DCCa aecdff $
$DCC ecdff $ C → eB
$DCBe ecdff $
$DCB cdff $ B →
$DC cdff $ C → cD
$DDc cdff $
$DD dff $ D → dD
$DDd dff $
$DD ff $ D →f
$Df ff $
$D f$ D →f
$f f$
$ $ Reconnu

P E S
$A acdfdc $ A → BCD
$DCB acdfdc $ B → aC
$DCCa acdfdc $
$DCC cdfdc $ C → cD
$DCDc cdfdc $ D → dD
$DCDd dfdc $
$DCD fdc $ D →f
$DCf fdc $
$DC dc $ refusé

S. Amjad Page 32
Contrôle
Janvier 2020

Exercice 1

1) Est-ce que le langage P = {0n10m / n, m  N} est rationnel ?


2) Soit une grammaire G = ({a, b}, {S, A, B}, S, R) où :
R = {S → aB | bA, A → aS | bAA | a, B → bS | aBB | b}.
Donnez un arbre de dérivation, ainsi que les dérivations gauche et droite de la chaîne
aaabbabbba.

Exercice 2
1) Déterminiser l’AFN suivant :

 0 1
*A A B C
B B A B
 C B C B

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({a, b, c}, {S, A, B}, S, P)
Où P : S → AB A →Aab│ε B → bcS│baA│b
Etudier le comportement syntaxique du mot abbcabb. S’il est accepté, tracez l’arbre
correspondant.

S. Amjad Page 33
Solution

Exercice 1

1. Le langage P = {0n10m / n, m  N} est rationnel. Il peut être engendré par l’expression


rationnelle suivante : 0*10*.
2. La dérivation à gauche :
S → aB | bA, A → aS | bAA | a, B → bS | aBB | b
S → aB → aaBB → aaaBBB → aaabBB → aaabbSB → aaabbaBB → aaabbabB →
aaabbabbS → aaabbabbbA → aaabbabbba
Dérivation à droite :
S → aB → aaBB → aaBaBB → aaBaBbS → aaBaBbbA → aaBaBbba → aaBabbba →
aaaBBabbba → aaaBbabbba → aaabbabbba

Exercice 2
5) L’automate déterministe est :

0 1
→ *AC ABC BC
*ABC ABC ABC
BC BC AB
*AB AB ABC

S. Amjad Page 34
2) Le diagramme de minimisation est représenté ci-dessous :

*AC
*ABC Y
BC X X
*AB Y X
AC ABC BC AB

Les états AB et ABC sont équivalents.

Le graphe de l’automate minimal est :

1 BC 1 AB 0, 1
AC ABC

6) Le langage reconnu par cet automate est obtenu par la résolution de ce système.
X0 = 0X1 + 1 X2 + 
X1 = (0 + 1) X1 + 
X2 = 0X2 + 1 X1
On applique Arden à la deuxième équation : X1 = (0 + 1)+
Donc X2 = 0*1 X1 = 0*1(0 + 1)*
On remplace les valeurs de X1 et X2 dans X0, on obtient :
X0 = 0(0 + 1)* + 10*1(0 + 1)* + ε = (0 + 10*1)(0 + 1)* + ε .
Le langage reconnu donc par l’automate est (0 + 10*1)(0 + 1)* + ε .

Exercice 3

La grammaire n’est pas de type LL(1) car elle est récursive et non factorisée.
La nouvelle grammaire est :
S → AB A → A’ A’→ abA’ │ B → bB’ B’ → cS │aA│ 

non-terminal premier Suivant


S a, b $
A a, ε b, $
A’ a, ε b, $

S. Amjad Page 35
B b $
B’ ε, a, c $

La table d’analyse est :

a b c $
S S → AB S → AB
A A → A’ A → A’ A → A’
A’ A’ → abA’ A’ → ε A’ → ε
B B → bB’
B’ B’ → aA B’ → cS B’ → ε

P E S
$S abbcabb $ S → AB
$BA abbcabb $ A → A’
$BA’ abbcabb $ A’ → abA’
$BA’ba abbcabb$
$BA’ bcabb $ A’ → 
$B bcabb $ B → bB’
$B’b bcabb $
$B’ cabb $ B’ → cS
$Sc cabb $
$S abb $ S → AB
$BA abb $ A → A’
$BA’ abb $ A’ → abA’
$BA’ba abb $
$BA’ b$ A’ → 
$B b$ B → bB’
$B’b b$
$B’ $ B’ → 
$ $ Reconnu

S. Amjad Page 36
Rattrapage
Février 2020

Exercice 1
1) Donner le langage reconnu par la grammaire G définie comme suit G : (VT = {0, 1, 2}, VN
= {S, X, Y}, S, R) où R = {S → S0 | X1 | Y12, X → X0 | Y2 | 12, Y → Y11 | Y0}.
n m
2) Est-ce que le langage P = {0 10 / n, m  N} est rationnel ?

Exercice 2
1) Déterminiser l’AFN suivant :

 a b
0 0 0 1
*1 2 3
 2 1 3 0
3 1

2) Minimiser l’AFD résultant et tracer le graphe correspondant.


3) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G définie comme suit : ({0, 1, 2, 3, 4}, {X, Y, Z}, X, P)
Où P : X → 0Y4│X1 Y →32X│32Z Z → 2X│ε
Etudier le comportement syntaxique du mot 032032441. S’il est accepté, tracez l’arbre
correspondant.

S. Amjad Page 37
Solution

Exercice 1
1) C’est une grammaire de type 3. Les règles de grammaire se transformeront en un système
d’équations qui sera résolu par le lemme d’Arden

S = S0 + X1 + Y12,

X = X0 + Y2 + 12,

Y = Y11 + Y0 = ϕ

Donc X = X0 + 12 = 120* alors S = S0 + 120*1 = 120*10* est le langage reconnu par la


grammaire.

2) Le langage P = {0n10m / n, m  N} est rationnel. Il peut être engendré par l’expression


rationnelle suivante : 0*10*.

Exercice 2
1) L’automate déterministe est :

0 1
→ 02 013 01
*013 012 01
*01 02 013
*012 012 01

2) La minimisation par raffinements successifs nous donne :

02
013 X
01 X Y
012 X Y
02 013 01 012

S. Amjad Page 38
Les états 012 et 013 sont des états équivalents.

3) Le langage reconnu par l’automate minimal est donné par son état initial en résolvant ce
système :

X0 = aX1 + b X2
X1 = aX1 + b X2 + 
X2 = aX0 + b X1 + 

X1 = (0 + 1)+
X2 = 0*1 X1 = 0*1(0 + 1)*
X0 = 0(0 + 1)* + 10*1(0 + 1)* + ε = (0 + 10*1)(0 + 1)* + ε : le langage

Exercice 3

X → 0Y4X’ X’ → 1X’ │ Y→ 32Y’ Y’ → X │ Z Z → 2X│ 

non-terminal Premier Suivant


X 0 $, 4
X’ 1,  $, 4
Y 3 4
Y’ , 2, 0 4
Z , 2 4

La table d’analyse est :

0 1 2 3 4 $
X X → 0Y4X’
X’ X’ → 1X’ X’ →  X’ → 
Y Y → 32Y’
Y’ Y’ → X Y’ → Z Y’ → Z
Z Z → 2X Z→

S. Amjad Page 39
P E S
$X 032032441 $ X → 0Y4X’
$X’4Y0 032032441 $
$X’4Y 32032441 $ Y → 32Y’
$X’4Y’23 32032441 $
$X’4Y’ 032441 $ Y’ → X
$X’4X 032441 $ X → 0Y4X’
$X’4X’4Y0 032441 $
$X’4X’4Y 32441 $ Y → 32Y’
$X’4X’4Y’32 32441 $
$X’4X’4Y’ 441 $ Y’ → Z
$X’4X’4Z 441 $ Z →
$X’4X’4 441 $
$X’4X’ 41 $ X’ → 
$X’4 41 $
$X’ 1$ X’ → 1X’
$X’1 1$
$X’ $ X’ → 
$ $ Reconnu

S. Amjad Page 40
Contrôle
Février 2021

Exercice 1

Soient a et b sont deux expressions rationnelles. Montrer que :


(a + b)* = (a*b)*a*

Exercice 2
4) Déterminiser l’AFN suivant :

 0 1
→Q Q QR
*R S QS
S S

5) Minimiser l’AFD résultant et tracer le graphe correspondant.


6) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G = ({a, b, c}, {X, Y}, X, P) où P :

X  XabY | c Y  bY | 

Quel est le comportement syntaxique du mot cabbb ? S’il est accepté, donner l’arbre
correspondant.

S. Amjad Page 41
Solution

Exercice 1
Montrons que (a + b)* = (a*b)*a*
(a + b)* est solution de l’équation X = X(a + b) + 1
(a*b)*a*(a + b) + 1 = (a*b)*a*a + (a*b)*a*b + 1
= (a*b)*a+ + (a*b)+ + 1
= (a*b)*a+ + (a*b)*
= (a*b)*(a+ + 1) = (a*b)*a*
(a*b)*a* est également solution de la même équation. D’après Arden, la solution est unique.
D’où (a + b)* = (a*b)*a*

Exercice 2

1) L’automate déterministe est représenté par la table ci-dessous :

 0 1
→Q Q QR
*QR QS QRS
QS QS QR
*QRS QS QRS

2) La table de minimisation de l’automate déterministe est :

Q (Q, QS) (QR, QRS)

QR X

QS X

QRS X X

Q QR QS QRS

Le graphe de l’automate est :

S. Amjad Page 42
3) Le langage reconnu par cet automate est obtenu en résolvant le système ci-dessous :
X = 0X + 1Y
Y = 0X + 1Y + ε = X + ε
X = 0X + 1(X + ε) = (0 + 1)X + 1 = (0 + 1)*1

Ou Y = 1*(0X + ε)
X = 0X + 1Y
= 0X + 11*(0X + ε)
= (0 + 1+0)X + 1+
= 1*0X + 1+ = (1*0)*1+
Ces deux expressions : (0 + 1)*1 et (1*0)*1+ sont équivalentes et engendrent un même
langage.

Exercice 3
X  XabY | c Y  bY | 
La grammaire est récursive à droite. Il faut donc éliminer cette récursivité pour qu’elle soit de
type LL(1)
X  cX’ X’  abYX’ |  Y  bY | 

non-terminal premier Suivant


X c $
X’ ε, a $
Y ε, b a, $

La table d’analyse est :

a b c $
X X → cX’
X’ X’ → abYX’ X’ → ε
Y Y→ε Y → bY Y→ε

S. Amjad Page 43
P E S
$X cabbb $ X → cX’
$X’c cabbb $
$X’ abbb $ X’ → abYX’
$X’Yba abbb $
$X’Y bb $ Y → bY
$X’Yb bb $
$X’Y b$ Y → bY
$X’Yb b$
$X’Y $ Y →
$X’ $ X’ → 
$ $ Reconnu

S. Amjad Page 44
Rattrapage
Avril 2021

Exercice 1
Quel est le langage reconnu par la grammaire suivante : G = ({a, b, c, d},{X, Y, Z}, X , P)
avec P : X  Xa | Yb | Zc Y  Yb | Za | a Z  Zc | Zd

Exercice 2
a) Déterminiser l’AFN suivant :

 a b
0 0 1 2
1 2 1
*2 1 2

b) Minimiser l’AFD résultant et tracer le graphe correspondant.


c) Quel est le langage reconnu par l’automate minimal ?

Exercice 3
Soit la grammaire G = ({a, b, c, }, {S, Y}, S, P) où P :
S  aY | b Y  cdS | cdY | cd

Quel est le comportement syntaxique du mot acdacd ? S’il est accepté, donner l’arbre
correspondant.

S. Amjad Page 45
Solution

Exercice 1

Pour trouver le langage reconnu par cette grammaire, il faut résoudre le système ci-dessous :
X = Xa + Yb + Zc
Y = Yb + Za + a
Z = Zc + Zd
En appliquant le lemme d’Arden à la troisième équation donne z = Ø, le système devient
X = Xa + Yb
Y = Yb + a
D’après Arden Y = ab*
En remplaçant Y dans la première équation :
X = Xa + ab*b = Xa + ab+ = (ab+)a*
Le langage reconnu donc par la grammaire est (ab+)a*.

Exercice 2

4) L’automate déterministe est représenté par sa table de transition ci-dessous.

 0 1
→ 01 012 12
*012 012 12
*12 12 12

5) La table de minimisation de l’automate déterministe est :

01 (012,12) (01)

012 X

12 X

01 012 12

S. Amjad Page 46
L’automate minimal est représenté par ce graphe :

a, b
12 a,
01 b
012

6) Le langage reconnu par l’automate est obtenu en résolvant le système ci-dessous.

X = (a + b)Y
Y = (a + b)Y + ε = (a + b)*
X = (a + b)Y = (a + b)(a + b)* = (a + b)+
Le langage est (a + b)+

Exercice 3

S  aY | b Y  cdS | cdY | cd
Cette grammaire n’est pas de type LL1 car elle n’est pas factorisée. Donc, après factorisation
la grammaire devient :
S  aY | b Y  cdY’ Y’’  S | Y | 

non-terminal Premier Suivant


S a b $
Y c $
Y’ ε, a, b, c $

La table d’analyse est :

a b c d $
S S → aY S→b
Y Y → cdY’
Y’ Y’ → S Y’ → S Y’ → Y Y’ → ε

P E S
$S acdacd $ S → aY

S. Amjad Page 47
$Ya acdacd $
$Y cdacd $ Y → cdY’
$Y’dc cdacd $
$Y’ acd $ Y’ → S
$S acd $ S → aY
$Ya acd $
$Y cd $ Y → cdY’
$Y’dc cd $
$Y’ $ Y’ → 
$ $ Reconnu

S. Amjad Page 48

Vous aimerez peut-être aussi