Académique Documents
Professionnel Documents
Culture Documents
ou
..................................
Numro d'tudiant
Prnom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Groupe . . .
1.5 pt
On considre l'alphabet = { a, f#2 , g#1 } et l'automate d'arbre dni par les transitions suivantes :
f(
Qa (a)
g(
2
Qg (x) )
Qg ( g(x) )
g(
3
Qa (x) )
Qg ( g(x) )
4
Qg (x), Qg (y) )
Qf ( f(x, y) )
o
Qa , Qg , Qf reprsentent les tats de l'automate d'arbre,
Qf est l'unique tat accepteur
x et y sont des variables
0.5 pt
Q1.
a conduit
ou bien
f(a,a) conduit f(
1 pt
Q2.
l'automate
f(g(a),g(a))
solution
f(
f(
g(a),
g(a)
1
g( Qa (a) ),
3
Qg (g(a)),
f(
4
Qf ( f(g(a), g(a)) )
On a lu tout le terme et
1 pt
Qf
)
1
g( Qa (a) ) )
3
Qg (g(a)) )
(5min)
Q1.
0.25 pt
On note L l'ensemble des lettres minuscules et C l'ensemble des chires. Donnez l'expression
rgulire qui dcrit les noms de variables forms sur l'alphabet = L C { - } sachant qu'un
identicateur est form d'au moins un caractre et doit commencer par un lettre ou un soulign.
def
id = (L + -). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Q2.
On note L (e) le langage associ l'expression rgulire e. Soit e1 et e2 deux expressions
rgulires, dnissez l'oprateur priv de , note -
def
et
Q3.
Soit A1 l'automate associ e1 et A2 l'automate associ e2 , expliquez comment construire
l'automate associ e1 e2 .
L (e1 e2 ) = L (e1 ) L (e2 )
= L (A1 ) L (A2 )
= L (A1 AC
2)
Q4.
Donnez l'expression rgulire qui dcrit les noms de variables de la question 1 mais en
interdisant les mots-clefs if,then,else.
def
4 pt
(20min)
L2 = L ( (b + a) )
def
L4 = L ( a + b )
def
L5 = L ( (ab) )
3 pt
(15min)
On utilise les notations suivantes pour les non-terminaux F pour Flottant, E pour partie Entire, D
pour partie Dcimale, C pour Chire, P pour le Point qui spare la partie entire de la partie dcimale.
On donne la grammaire qui dnit les critures des nombres ottants :
(1)
F E P D
(2)
E C
(3)
E C E
(4)
P "."
(5)
D C
(6)
D C D
(7)
C
"0" | "1" | . . . | "9"
0.75 pt
Q1.
Donnez l'arbre de drivation qui permet de gnrer le ottant 20.01 et indiquez chaque
drivation le numro de la rgle utilise.
solution
z
z
C
(7)
"2"
E
(2)
}|
E
(3)
C
(7)
"0"
F
(1)
}|
P
(4)
"."
C
(7)
"0"
D
(6)
}|
D
(6)
C
(7)
"1"
Q2.
0.75 pt
Compltez la grammaire des chires dcimaux avec un attribut an qu'elle retourne le nombre
de dcimales lues. Par exemple D doit retourner 3 lorsqu'elle reconnat la partie 007 du ottant 18.007
D .................
(4)
C ..........................................................
0)
D . . . . . . . . . . . . . . . . . (4
C
(4)
D {d} C ; {d := 1}
D {d}
1.5 pt
(40 )
C D {d0 } ; {d := d0 + 1}
Q3.
Compltez la grammaire des ottants avec le calcul des attributs an que le non-terminal F
retourne le ottant f reconnu.
(1)
F {f }
(2)
(3)
(4)
"."
4.1
Q4.
4 pt
(5)
(6)
(7)
C {c}
4 pt
........................... D ...........................
C {c} ; {d := 1 ; n := 10 i + c}
C {c} ; {i0 := 10 i + c} ;
{i0 } D {(n0 , d0 )} ; {d := d0 + 1 ; n := n0 }
"0" ; {c := 0}
"1" ; {c := 1}
...
"9" ; {c := 9}
(15min)
Donnez une grammaire qui dnit les documents html forms des balises suivantes
o
<html> indique le dbut (et </html> la n) d'un document html
<ol> indique le dbut (et </ol> la n) d'une liste
<li> indique le dbut (et </li> la n) d'un item (lment de la liste)
La grammaire doit tre telle que
on ne s'occupe pas des espaces, de l'indentation et des sauts de ligne
un document html commence par <html> et se termine par </html>
entre les balises <html> et </html> on peut mettre 0 ou plusieurs listes
4
<html>
<ol>
<li></li>
</ol>
<ol>
<li></li>
</ol>
</html>
<html>
</html>
<html>
<ol> pas de mots ici
<li> mots </li>
</ol>
</html>
<html>
pas de mots ici
</html>
solution
H <html> Ls </html>
Ls
Ls L Ls
L <ol> I </ol>
I <li> M Ls M </li>
II I
M
M LM
L a | ... | z |
5 pt
0.25 pt
Q1.
Dessinez l'automate.
5
(20min)
0.75 pt
Q2.
Donnez une excution qui montre que le mot "aabbaa" est reconnu par l'automate A.
solution
a
(1, "aabbaa")
(1, "abbaa")
(1, "bbaa")
(1, "baa")
(1, "aa")
(2, "a")
(3, "") ne marche pas car 3
/
Accept(A)
a
2 pt
Q3.
A
a
b
0.25 pt
Q4.
{1}
{ 1, 2 }
{1}
{ 1, 2 }
{ 1, 2, 3 }
{ 1, 3 }
{ 1, 2, 3 }
{ 1, 2, 3 }
{ 1, 3, 4 }
{ 1, 3 }
{ 1, 2 }
{ 1, 4 }
{ 1, 3, 4 }a
{ 1, 2, 4 }
{ 1, 4 }
{ 1, 4 }a
{ 1, 2, 4 }
{ 1, 4 }
{ 1, 2, 4 }a
{ 1, 2, 3, 4 }
{ 1, 3, 4 }
{ 1, 2, 3, 4 }a
{ 1, 2, 3, 4 }
{ 1, 3, 4 }
0.75 pt
Q5.
0.25 pt
0.25 pt
Q6.
0.25 pt
0.25 pt
1 pt
solution
0.25 pt
"ababa"
{ 1, 2 }
/ Acc(AD )
1 pt
1.25 pt
({ 1 }, "ababa")
({ 1, 2 }, "baba")
({ 1, 3 }, "aba")
({ 1, 2 }, "ba")
({ 1, 3 }, "a")
({ 1, 2 }, "")
solution
(1, "ababa")
(1, "baba")
(1, "aba")
(1, "ba")
(1, "a")
a
(1, "") :
a
(2, "") :
a
(2, "ba")
(3, "a")
:
a
(2, "bab")
(3, "ab")
:
rejet car
1
/ Acc(A)
rejet car
2
/ Acc(A)
4 pt
(20min)
On considre un rseau constitu de deux parties : un rseau sr car protg par un pare-feu et
l'internet.
Pour contrler l'usage des machines sur le rseau on installe sur chaque compte utilisateur un moniteur
de scurit qui observe les commandes suivantes :
login qui lance la session principale
quit qui ferme la session principale
rlogin qui permet d'ouvrir une connection sur une machine du rseau protg
ssh qui permet d'ouvrir une session avec encryption des changes sur une machine hors du rseau
protg.
exit qui permet de fermer toutes les sessions en cours (sauf la session principale)
Dans cet exercice on considre que les autres commandes que tape l'utilisateur ne sont pas soumises
au contrle de scurit.
Principe d'un moniteur de scurit : Un moniteur de scurit prend en entre une politique
de scurit P dcrite sous la forme d'une expression rgulire ou d'un automate ( nombre)
d'tats ni ou d'un automate une pile dterministe. Il autorise uniquement les squences
de commandes qui appartiennent au langage L (P ).
0.25 pt
Q1.
0.75 pt
Q2.
Donnez 3 exemples de squences de commandes qui respectent toutes les contraintes de la
politique de scurit n 1 ci-dessous et 3 exemples de squences de commandes qui ne les respectent
pas.
Politique de scurit n 1 :
1. La session principale commence par un login et se termine par quit
2. au coeur de la session principale on peut eectuer des sessions ssh et des sessions
rlogin
3. on ne peut ouvrir qu'une session rlogin la fois qu'on doit fermer par exit
4. on ne peut ouvrir qu'une session ssh la fois qu'on doit fermer par exit
5. on ne peut pas avoir simultanment une session ssh et une session rlogin
solution
1 pt
Q3.
1 pt
Q4.
Politique de scurit n 2 :
3. on peut ouvrir au plus une session rlogin qu'on doit chacune fermer par exit
4. on peut ouvrir au plus deux sessions ssh la fois qu'on doit chacune fermer par exit
5. il est interdit d'avoir simultanment des sessions ssh et rlogin.
solution
quit
quit
On accepte deux rponses : soit la transition 2 1 avec 1 accepteur ou bien la transition 2 7 vers un
tat 7 accepteur.
def
A2 =
?()*+
/.-,
>=<
/ 89:;
1 j
J
quit
login
* ?>=<
89:;
2 j
quit
?>=<
89:;
5
?>=<
89:;
6 j
* ?>=<
89:;
3 j
ssh
exit
rlogin
ssh
* ?>=<
89:;
4
exit
exit
1 pt
Q5.
Politique de scurit n 3 :
1.
2.
3.
4.
Pour plus de clart on n'indique pas la pile sur les transitions lorsqu'elle ne joue aucun rle et qu'elle n'est pas
modie.
?()*+
/.-,
>=<
/ 89:;
1
ssh:/ s
login
quit
/
4 pt
+ ?>=<
89:;
2
U
exit: s /
2
3
2
3
4
9
4
5
8 9 10 11 12a
7 11 4 12 9 10 4 12
4 4 7 8 10 9 11 6
(20min)
0.75 pt
Q1.
Le langage reconnu par l'automate de la question prcdente est-il vide ? Justiez votre
rponse.
solution
a
2 pt
Q2.
Les
2
3
accepteurs
}|
{
z
}|
{ z
{ 2a , 4a , 12a } { i 1, 3, 5, 6, 7, 8, 11, 9, 10 }
|
{z
} |
{z
}
G1
b
5, 6
4 G1
G2
tandis que
1, 3, 7, 8, 11, 9, 10
G2
{ 2, 4, 12 } { 1, 3, 7, 8, 11, 9, 10 } { 5, 6 }
{z
} | {z }
| {z } |
G1
b
G2
4, 12
5, 6 G3
G3
tandis que
2
C G2
{ 2 } { 1, 3, 7, 8, 11, 9, 10 } { 5, 6 } { 4, 12 }
{z
} | {z } | {z }
|{z} |
G1
a
G2
3, 7, 8, 11
G4
tandis que
G3
a
1
2 G1
G4
et que
9, 10
9, 10 G2
{ 2 } { 3, 7, 8, 11 } { 5, 6 } { 4, 12 } { 1 } { 9, 10 }
|{z} |
{z
} | {z } | {z } |{z} | {z }
G1
G2
b
3
9 G6
G3
tandis que
G5
G4
G6
7, 8, 11
7, 8, 11 G2
{ 2 } { 7, 8, 11 } { 5, 6 } { 4, 12 } { 1 } { 9, 10 } { 3 }
|{z} | {z } | {z } | {z } |{z} | {z } |{z}
G1
G2
G3
Vrication de la stabilit
A i G5
G1 a
G7
a
G1
G1
G4
b
G7
G7
G6
(1)
0.25 pt
1 pt
Q3.
(2)
(3)
G4
(4)
(2)
(2)
(4)
(4)
(3)
(3)
(9)
(5)
G4 a
G4
G3
G5
(5)
(7)
(4)
G7
G6
G3
G2
G4
(6)
(11)
(4)
G3
G2
G4
(7)
(4)
(7)
G2
G4
G2
(8)
(12)
(8)
G2
G4
G2
(9)
(9)
(10)
G6
G6
G6
(10)
(10)
(9)
G6
G6
G6
(11)
(4)
(11)
G2
G4
G2
(12)
(12)
(6)
Q4.
L'automate de la question prcdente reconnat-il le langage universel
votre rponse.
{a, b} ?
Justiez
solution
L (A) 6= . En eet :
le langage est reconnu par un automate un unique tat (qui est initial et accepteur, il n'a pas d'tats
non-accepteur).
Si A reconnassait le langage universel, sa version minimis aurait un seul tat.
L'automate minimis possde au moins deux tats (puisque l'automate de dpart des tats accepteurs et
des tats non-accepteurs).
Conclusion : A ne peut tre quivalent l'automate qui reconnat .
G4 a
G4
G3