Upload
sahbi-sk
View
213
Download
0
Embed Size (px)
DESCRIPTION
G
Citation preview
Nom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prnom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Groupe . . .
ou Numro d'tudiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . si l'examen est anonyme
RICM3 Automates et Grammaires
Dure : 1h30, sans documents.
Tous les appareils lectroniques sont interdits l'exception des montres
Le barme est donn titre indicatif
Le sujet comporte 3 exercices indpendants
Il est not sur 30
Rpondez sur votre copie sauf pour les questions avec pointills
N'oubliez pas de mettre votre nom ou votre numro d'tudiant sur le sujet
Commencez par lire tout le sujet pour reprer les questions faciles
Exercice 1 : Reconnaissance d'un terme par un automate d'arbre -
(5min)
1.5 pt
On considre l'alphabet = {a, f#2,g#1} et l'automate d'arbre dni par les transitions suivantes :
a
1Qa
(a)
g( Qg
(x) ) 2Qg
( g(x) )
g( Qa
(x) ) 3Qg
( g(x) )
f( Qg
(x),Qg
(y) ) 4Qf
( f(x, y) )
o
Q
a
,Qg
,Qf
reprsentent les tats de l'automate d'arbre,
Q
f
est l'unique tat accepteur
x et y sont des variables
Q1. Donnez un terme qui n'est pas reconnu par l'automate ?
0.5 pt
solution
a conduit Q
a
(a) et l'tat Qa
n'est pas accepteur.
ou bien
f(a,a) conduit f( Qa
(a),Qa
(a) ) et aucune rgle de drivation ne permet de poursuivre l'excution.
1
Q2. Donnez l'excution qui permet de montrer que le terme f(g(a),g(a)) est reconnu par
1 pt
l'automate
solution
f( g(a), g(a) )1 1f( g( Qa
(a) ), g( Qa
(a) ) )3 3f( Qg
(g(a)), Qg
(g(a)) )4Q
f
( f(g(a),g(a)) )
On a lu tout le terme et Q
f
est un tat accepteur.
Exercice 2 : Expressions rgulires (5min)
1 pt
Q1. On note L l'ensemble des lettres minuscules et C l'ensemble des chires. Donnez l'expression0.25 ptrgulire qui dcrit les noms de variables forms sur l'alphabet = L C {-
} sachant qu'unidenticateur est form d'au moins un caractre et doit commencer par un lettre ou un soulign.
iddef= (L+-
). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dnition de l'oprateur sur les expressions rgulires
Q2. On note L (e) le langage associ l'expression rgulire e. Soit e1 et e2 deux expressions0.25 ptrgulires, dnissez l'oprateur priv de , note -
L (e1 e2) def= L (e1) \L (e2) = L (e1) L (e2) l'aide des oprateurs ensemblistes , et
Q3. Soit A1 l'automate associ e1 et A2 l'automate associ e2, expliquez comment construire0.25 ptl'automate associ e1 e2.
L (e1 e2) = L (e1) L (e2)= L (A1) L (A2)= L (A1 AC2 )Donc l'automate associ e1 e2 est A1 AC2 .
Q4. Donnez l'expression rgulire qui dcrit les noms de variables de la question 1 mais en
0.25 pt
interdisant les mots-clefs if,then,else.
iddef= ((L+-
).) (if + then+ else)
2
Exercice 3 : Inclusions de langages (20min)
4 pt
On considre l'alphabet = {a, b} et les langages L1 L5 ci-dessous. Comparez les langages 2 2et indiquez les relations qu'ils vrient : (inclusion large), (inclusion stricte), = (galit), ou bienintersection vide. Justiez chacunes de vos rponses par un raisonnement ou un contre-exemple.
Les justications comptent pour
23 des points. Attention, le fait de dcrire en franais ce que reprsente
l'expression rgulire n'est pas considr comme un raisonnement.
L1def= L ( )
L2def= L ( (b+ a) )
L3def= L ( ((a).b+ a.(b)) )
L4def= L ( a + b )
L5def= L ( (ab) )
Exercice 4 : Grammaires attribues des ottants (15min)
3 pt
On utilise les notations suivantes pour les non-terminaux F pour Flottant, E pour partie Entire, Dpour 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 :
F(1)E P D
E(2)C
E(3)C E
P(4) "."
D(5)C
D(6)C D
C(7) "0" | "1" | . . . | "9"
Q1. Donnez l'arbre de drivation qui permet de gnrer le ottant 20.01 et indiquez chaque0.75 pt
drivation le numro de la rgle utilise.
solution
F (1)
E (2)
C E (7) (3)"2" C
(7)"0"
P (4)"."
D (6)
C D (7) (6)"0" C
(7)"1"
3
Q2. Compltez la grammaire des chires dcimaux avec un attribut an qu'elle retourne le nombre
0.75 pt de dcimales lues. Par exemple D doit retourner 3 lorsqu'elle reconnat la partie 007 du ottant 18.007D . . . . . . . . . . . . . . . . .
(4) C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .D . . . . . . . . . . . . . . . . .
(4) C . . . . . . . . . . . . . . . . . . . . . . . . . . . D . . . . . . . . . . . . . . . . . . . . . . . . . . .D {d} (4) C ; {d := 1}D {d} (4
) C D {d} ; {d := d + 1}
Q3. Compltez la grammaire des ottants avec le calcul des attributs an que le non-terminal F1.5 pt
retourne le ottant f reconnu.
F {f } (1) {0} E {e} P {0} D {(n, d)} ; {f := e+ (n/10d)}
{i} E {e} (2) C {c} ; {e := c}
{i} E {e} (3) C {c} ; {i := i 10 + c} ;{i} E {e} ; {e := e}
P(4) "."
{i} D {(n, d)} (5) C {c} ; {d := 1 ;n := 10 i+ c}
{i} D {(n, d)} (6) C {c} ; {i := 10 i+ c} ;{i} D {(n, d)} ; {d := d + 1 ;n := n}
C {c} (7) "0" ; {c := 0}| "1" ; {c := 1}| . . .| "9" ; {c := 9}
4.1 Grammaires des listes html (15min)
4 pt
Q4. Donnez une grammaire qui dnit les documents html forms des balises suivantes
4 pt
o
indique le dbut (et la n) d'un document html
indique le dbut (et la n) d'une liste
indique le dbut (et 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 et se termine par
entre les balises et on peut mettre 0 ou plusieurs listes
4
entre les balises et il doit y avoir au moins un item
entre les balises et on peut mettre 0 ou plusieurs mots et 0 ou plusieurs listes
on ne peut mettre des mots qu'entre les balises et .
les mots sont forms de (0 ou plusieurs) lettres de l'alphabet et de 0 ou plusieurs espaces
Exemples de documents accepts par la grammaire
premier item
second item
mots avant la sous liste
mots apres la sous liste
dernier item
Exemples de documents rejets par la grammaire
pas de mots ici
mots
pas de mots ici
solution
H Ls Ls Ls L LsL I I M Ls MI I IM M L ML a | . . . | z |
Exercice 5 : Dterminisation d'automate (20min)
5 pt
On considre l'automate :
A i1 2 3 4a
a 1, 2 3 4b 1 3 4 4
Q1. Dessinez l'automate.
0.25 pt
5
Q2. Donnez une excution qui montre que le mot "aabbaa" est reconnu par l'automate A.0.75 pt
solution
(1, "aabbaa") a(1, "abbaa") a(1, "bbaa") b(1, "baa") b(1, "aa") a(2, "a") a(3, "") ne marche pas car 3 /Accept(A)mais l'excution (1, "aabbaa") a(2, "abbaa") a(3, "bbaa") b(4, "baa") b(4, "aa") a(4, "a") a(4, "") acceptele mot car on a lu tout le mot et 4 Accept(A)
Q3. Donnez, sous forme de tableau, un automate dterministe quivalent l'automate A.2 pt
solution
A i{1} {1, 2} {1, 2, 3} {1, 3} {1, 3, 4}a {1, 4}a {1, 2, 4}a {1, 2, 3, 4}aa {1, 2} {1, 2, 3} {1, 2, 3} {1, 2} {1, 2, 4} {1, 2, 4} {1, 2, 3, 4} {1, 2, 3, 4}b {1} {1, 3} {1, 3, 4} {1, 4} {1, 4} {1, 4} {1, 3, 4} {1, 3, 4}
Q4. Que signie qu'un automate A est quivalent un automate B ?0.25 pt
solution
Cela signie que L (A) = L (B).
Q5. Rappelez la condition d'acception d'un mot par un automate non-dterministe.
0.75 pt
solution
Un mot est accept par un automate non-dterministe s'il existe une excution de A partant d'un tat0.25 pt
0.25 pt
initial qui consomme tout le mot et se termine sur un tat accepteur avec le mot vide .
0.25 pt
0.25 pt
Q6. Justiez que le mot "ababaa" n'est pas reconnu par l'automate A.
1 pt
solution
Puisque AD est quivalent A, il sut de considrer la version dterministe de l'automate.
0.25 pt
Ainsi il n'y a qu'une excution considrer tandis qu'avec l'automate non dterministe on doit examiner toutes
les excutions possibles : chaque transition non-dterministe ore conduit plusieurs excutions (une par choix).
Excution de l'automate dterministe AD sur "ababa"
1 pt
({1}, "ababa") a({1, 2}, "baba") b({1, 3}, "aba") a({1, 2}, "ba") b({1, 3}, "a") a({1, 2}, "")"ababa" est rejet car {1, 2} / Acc(AD)
solution
Excutions de l'automate non-dterministe A sur "ababa"1.25 pt
(1, "ababa")a(1, "baba") b(1, "aba")
a(1, "ba") b(1, "a")a(1, "") : rejet car 1 / Acc(A)a(2, "") : rejet car 2 / Acc(A)
a(2, "ba") b(3, "a") a : pas de suite dexcution possiblea(2, "bab") b(3, "ab") a : pas de suite dexcution possible
6
Exercice 6 : Modlisation de politiques de scurit (20min)
4 pt
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 ).
Q1. Donnez l'alphabet considre par les politique de scurit sur ce rseau.0.25 pt
solution
= { login, quit, rlogin, ssh, exit}
Q2. Donnez 3 exemples de squences de commandes qui respectent toutes les contraintes de la
0.75 pt
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 sessionsrlogin
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
{ login.quit, login.ssh.exit.quit, login.rlogin.exit.ssh.exit.quit} L (P1){ login, login.ssh.ssh.exit.exit.quit, login.ssh.rlogin.exit.exit.quit} L (P1) =
Q3. Donnez une expression rgulire P1 qui dcrit la politique de scurit n1.
1 pt
solution
On accepte deux rponses :
P1def= login.((ssh+ rlogin).exit).quit login.(ssh.exit+ rlogin.exit).quit
P1def=
(login.(ssh.exit+ rlogin.exit).quit
)
7
Q4. Donnez un automate tats nis P2 qui dcrit la politique de scurit n2.
1 pt
Politique de scurit n
2 :
1. La session principale commence par un login et se termine par quit
2. au coeur de la session principale on peut eectuer soit des sessions ssh, soit une sessionrlogin
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
On accepte deux rponses : soit la transition 2quit 1 avec 1 accepteur ou bien la transition 2 quit 7 vers untat 7 accepteur.
A2def=
//?>======
Q1. Le langage reconnu par l'automate de la question prcdente est-il vide ? Justiez votre
0.75 pt
rponse.
solution
L (A) 6= car l'excution (1, "a") a(2, "") reconnat le mot "a" puisque 1 Init(A) et 2 Accept(A)
Q2. Minimisez l'automate en justiant chaque tape de l'algorithme
2 pt
Les
23 des points sont attribus aux justications.
solution
accepteurs {2a, 4a, 12a}
G1
non-accepteurs { i1, 3, 5, 6, 7, 8, 11, 9, 10}
G2
5, 6 b 4 G1 tandis que 1, 3, 7, 8, 11, 9, 10 bG2{2, 4, 12}
G1
{1, 3, 7, 8, 11, 9, 10} G2
{5, 6} G3
4, 12 b 5, 6 G3 tandis que 2 bC G2{2}G1
{1, 3, 7, 8, 11, 9, 10} G2
{5, 6} G3
{4, 12} G4
3, 7, 8, 11 aG4 tandis que 1 a 2 G1 et que 9, 10 a 9, 10 G2{2}G1
{3, 7, 8, 11} G2
{5, 6} G3
{4, 12} G4
{1}G5
{9, 10} G6
3 b 9 G6 tandis que 7, 8, 11 b 7, 8, 11 G2{2}G1
{7, 8, 11} G2
{5, 6} G3
{4, 12} G4
{1}G5
{9, 10} G6
{3}G7
Vrication de la stabilit
A
i(1) G5 (2) G1
a(3) G7 (4) G4
a(5) G3 (6) G3 (7) G2 (8) G2 (9) G6 (10) G6 (11) G2 (12) G4
a
a (2) G1 (2) G1 (4) G4 (4) G4 (7) G2 (11) G2 (4) G4 (12) G4 (9) G6 (10) G6 (4) G4 (12) G4b (3) G7 (3) G7 (9) G6 (5) G3 (4) G4 (4) G4 (7) G2 (8) G2 (10) G6 (9) G6 (11) G2 (6) G3
Q3. Donnez l'automate minimis sous forme de tableau.
0.25 pt
Q4. L'automate de la question prcdente reconnat-il le langage universel {a, b} ? Justiez1 ptvotre rponse.
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'tatsnon-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 .
9