10
                               1.5 pt  Σ = {   ,   #2 ,   #1 }  1 −→    (   )  (    (x) )  2 −→    (   (x) )  (    (x) )  3 −→    (   (x) )  (    (x),    (y) ) 4 −→    (   (x, y) )     ,    ,           x   y      0.5 pt       (   )           (    (   ),    (   ) )  

2010 RICM3 EX.corrige

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