02_grammaires

Upload: sahbi-sk

Post on 01-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

C

TRANSCRIPT

  • Theorie des langages

    Grammaires

    Elise Bonzonhttp://web.mi.parisdescartes.fr/vbonzon/

    [email protected]

    1 / 27Theorie des langages

    N

  • Grammaires

    Grammaires

    Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires

    2 / 27Theorie des langages

    N

  • Grammaires

    Grammaires

    Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires

    3 / 27Theorie des langages

    N

  • Grammaires

    Principe de base

    Ensemble de re`gles pour generer les mots du langage

    Sous la forme de re`gles de reecriture

    Remplacer une sequence de symboles par une autre sequenceMots generes = mots obtenus a` partir dun symbole special appelesymbole de depart ou axiome

    4 / 27Theorie des langages

    N

  • Grammaires

    Exemple

    Considerons la phrase suivante :

    La vieille dame regarde la petite fille

    Peut-on construire une grammaire qui permette de generer cette phrase?

    Alphabet : = { la, vieille, petite, dame, fille, regarde}Structure de la phrase :

    Un groupe sujet (article, adjectif, nom)Un verbeUn groupe complement dobjet (article, adjectif, nom)

    5 / 27Theorie des langages

    N

  • Grammaires

    Exemple

    Considerons la phrase suivante :

    La vieille dame regarde la petite fille

    Peut-on construire une grammaire qui permette de generer cette phrase?

    Alphabet : = { la, vieille, petite, dame, fille, regarde}Structure de la phrase :

    Un groupe sujet (article, adjectif, nom)Un verbeUn groupe complement dobjet (article, adjectif, nom)

    5 / 27Theorie des langages

    N

  • Grammaires

    Exemple

    Considerons la phrase suivante :

    La vieille dame regarde la petite fille

    Peut-on construire une grammaire qui permette de generer cette phrase?

    Alphabet : = { la, vieille, petite, dame, fille, regarde}Structure de la phrase :

    Un groupe sujet (article, adjectif, nom)Un verbeUn groupe complement dobjet (article, adjectif, nom)

    5 / 27Theorie des langages

    N

  • Grammaires

    Exemple

    Re`gles de production

    1. Phrase SujetVerbeComplement2. Sujet Groupe Nominal3. Complement Groupe Nominal4. Groupe Nominal ArticleNom5. Groupe Nominal ArticleAdjectifNom6. Article la7. Nom dame | fille8. Adjectif vieille | petite9. Verbe regarde

    6 / 27Theorie des langages

    N

  • Grammaires

    Grammaires

    Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires

    7 / 27Theorie des langages

    N

  • Grammaires

    Grammaire

    Grammaire

    Une grammaire est definie par un quadruplet G = V ,,P,S ou`V est un alphabet

    V est lensemble des symboles terminauxV \ est lensemble des symboles non terminauxS V \ est le symbole de depart ou axiomeP (V+ V ) est lensemble (fini) de re`gles de production

    Notations :

    : lettres minuscules

    V \ : lettre majusculesRe`gles de production :

    Signification intuitive : lelement V+ peut etre remplace par V

    8 / 27Theorie des langages

    N

  • Grammaires

    Grammaire

    Grammaire

    Une grammaire est definie par un quadruplet G = V ,,P,S ou`V est un alphabet

    V est lensemble des symboles terminauxV \ est lensemble des symboles non terminauxS V \ est le symbole de depart ou axiomeP (V+ V ) est lensemble (fini) de re`gles de production

    Notations :

    : lettres minuscules

    V \ : lettre majusculesRe`gles de production :

    Signification intuitive : lelement V+ peut etre remplace par V

    8 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exemple

    Soit G1 = V ,,P,S avec = {:=, a, b, c,+, , ), (}V \ = {S , I ,E}Axiome S

    8 re`gles de production :

    S I := E I aI b I cE E + E E E EE (E) E I

    On peut aussi ecrire I a|b|c.

    9 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exemple

    Soit G1 = V ,,P,S avec = {:=, a, b, c,+, , ), (}V \ = {S , I ,E}Axiome S

    8 re`gles de production :

    S I := E I aI b I cE E + E E E EE (E) E I

    On peut aussi ecrire I a|b|c.

    9 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exemple

    Soit G2 = V ,,P,S avec = {a, b}V \ = {S}Axiome S

    3 re`gles de production :

    S aSaS SbSS

    10 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exemple

    Soit G3 = V ,,P,S avec = {a, b}V \ = {S}Axiome S

    3 re`gles de production :

    S aSS aSbSS

    11 / 27Theorie des langages

    N

  • Grammaires

    Grammaire hors contexte

    Grammaire hors contexte

    Soit G = V ,,P,S. G est dite hors contexte (context-free) si tousles re`gles sont de la forme

    A ou` A V \ (symbole non terminal), et V

    12 / 27Theorie des langages

    N

  • Grammaires

    Derivation

    Derivation en une etape

    Soit G = V ,,P,S, u V+ et v V . G permet de deriver v deu en une etape, note u

    Gv , si et seulement si

    u = xuy

    v = xv y

    u v est dans P

    Derivation en plusieurs etapes

    G permet de deriver v de u en plusieurs etapes, note uG

    v , si et

    seulement si k 0 et v0, . . . , vk V tels queu = v0

    v = vk

    vi G

    vi+1 pour 0 i < k

    13 / 27Theorie des langages

    N

  • Grammaires

    Derivation

    Derivation en une etape

    Soit G = V ,,P,S, u V+ et v V . G permet de deriver v deu en une etape, note u

    Gv , si et seulement si

    u = xuy

    v = xv y

    u v est dans P

    Derivation en plusieurs etapes

    G permet de deriver v de u en plusieurs etapes, note uG

    v , si et

    seulement si k 0 et v0, . . . , vk V tels queu = v0

    v = vk

    vi G

    vi+1 pour 0 i < k13 / 27

    Theorie des langages

    N

  • Grammaires

    Langage genere par une grammaire

    Mots generes par une grammaire

    Soit G = V ,,P,S.Les mots generes par G sont les mots v (symboles terminaux)qui peuvent etre derives a` partir de laxiome : S

    G

    v .

    Langage genere par une grammaire

    Soit G = V ,,P,S.Le langage genere par G , note L(G ) est lensemble des mots generespar G .

    L(G ) = {v |S G

    v}

    14 / 27Theorie des langages

    N

  • Grammaires

    Langage genere par une grammaire

    Mots generes par une grammaire

    Soit G = V ,,P,S.Les mots generes par G sont les mots v (symboles terminaux)qui peuvent etre derives a` partir de laxiome : S

    G

    v .

    Langage genere par une grammaire

    Soit G = V ,,P,S.Le langage genere par G , note L(G ) est lensemble des mots generespar G .

    L(G ) = {v |S G

    v}

    14 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exempleSoit G3 = V ,,P,S avec

    = {a, b}V \ = {S}Axiome S

    3 re`gles de production :

    S aSS aSbSS

    On veut montrer que aaba L(G )S

    G3aSbS

    G3aSbaS

    G3aSba

    G3aaSba

    G3aaba

    G3aaba

    Seconde derivation possible :

    S G3

    aSbS G3

    aaSbS G3

    aabS G3

    aaba G3

    aaba

    15 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exempleSoit G3 = V ,,P,S avec

    = {a, b}V \ = {S}Axiome S

    3 re`gles de production :

    S aSS aSbSS

    On veut montrer que aaba L(G )

    S G3

    aSbS G3

    aSbaS G3

    aSba G3

    aaSba G3

    aaba G3

    aaba

    Seconde derivation possible :

    S G3

    aSbS G3

    aaSbS G3

    aabS G3

    aaba G3

    aaba

    15 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exempleSoit G3 = V ,,P,S avec

    = {a, b}V \ = {S}Axiome S

    3 re`gles de production :

    S aSS aSbSS

    On veut montrer que aaba L(G )S

    G3aSbS

    G3aSbaS

    G3aSba

    G3aaSba

    G3aaba

    G3aaba

    Seconde derivation possible :

    S G3

    aSbS G3

    aaSbS G3

    aabS G3

    aaba G3

    aaba

    15 / 27Theorie des langages

    N

  • Grammaires

    Grammaire : exempleSoit G3 = V ,,P,S avec

    = {a, b}V \ = {S}Axiome S

    3 re`gles de production :

    S aSS aSbSS

    On veut montrer que aaba L(G )S

    G3aSbS

    G3aSbaS

    G3aSba

    G3aaSba

    G3aaba

    G3aaba

    Seconde derivation possible :

    S G3

    aSbS G3

    aaSbS G3

    aabS G3

    aaba G3

    aaba

    15 / 27Theorie des langages

    N

  • Grammaires

    Derivation la plus a` gauche

    Derivation la plus a` gauche (LPG)

    Soit G = V ,,P,S, et w SG

    w est une derivation la plus a` gauche (LPG) si, a` chaque

    etape de la derivation, cest la variable la plus a` gauche qui est derivee.Donc, si w1, . . . ,wn tels que

    S = w0 G

    w1 G. . .

    Gwn

    Gwn+1 = w , et

    i , 0 i nwi = uiAivi ,wi+1 = uiivi etAi i

    alors ui (ui est un symbole terminal, et ne contient donc pas devariable).

    16 / 27Theorie des langages

    N

  • Grammaires

    Grammaires

    Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires

    17 / 27Theorie des langages

    N

  • Grammaires

    Arbres de derivation pour une gram-maire hors contexte

    Arbres de derivation

    Soit G = V ,,P,S une grammaire hors contexte. Un arbre D estun arbre de derivation pour un mot w a` partir de laxiome S si :

    La racine de D est etiquetee par S (laxiome)

    Les feuilles de D sont etiquetees par des elements de (symbolesterminaux)

    Letiquette dune feuille est le mot vide seulement si la feuille est filleunique

    Les nuds de D qui ne sont pas des feuilles sont etiquetes par unsymbole non terminal (V \ )Pour tout nud, si Y est letiquette du nud, et si Z1, . . . ,Zn sont lesnuds de ses fils, dans cet ordre, alors Y Z1 . . .Zn est une re`gleLe mot des feuilles de D, cest-a`-dire le mot obtenu en concatenantles etiquettes des feuilles de la gauche vers la droite, est le mot w

    18 / 27Theorie des langages

    N

  • Grammaires

    Arbres de derivation : exemplea := a + b a L(G1)

    S

    I

    a

    := E

    E

    I

    a

    + E

    E

    I

    b

    E

    I

    a

    19 / 27Theorie des langages

    N

  • Grammaires

    Arbres de derivation : exempleaaba L(G3). Il existe deux arbres de derivation differents pour ce mot.

    S

    a S b S

    a S

    a S

    S

    a S

    a S b S

    a S

    La grammaire est ambigue.

    20 / 27Theorie des langages

    N

  • Grammaires

    Arbres de derivation : exempleaaba L(G3). Il existe deux arbres de derivation differents pour ce mot.

    S

    a S b S

    a S

    a S

    S

    a S

    a S b S

    a S

    La grammaire est ambigue.

    20 / 27Theorie des langages

    N

  • Grammaires

    Grammaires ambigues

    Ambiguite

    Une grammaire G est ambigue sil existe un mot de L(G ) qui a aumoins deux derivations LPG a` partir de S (et donc deux arbres dederivation).Dans le cas contraire G est non ambigue.

    G1 est ambigue.

    21 / 27Theorie des langages

    N

  • Grammaires

    Grammaires ambigues

    Ambiguite

    Une grammaire G est ambigue sil existe un mot de L(G ) qui a aumoins deux derivations LPG a` partir de S (et donc deux arbres dederivation).Dans le cas contraire G est non ambigue.

    G1 est ambigue.

    21 / 27Theorie des langages

    N

  • Grammaires

    Grammaires ambigues

    Theore`me

    Etant donne une grammaire G , un mot est genere par G (SG

    w) si

    et seulement si il existe un arbre de derivation qui gene`re w .

    Langage ambigue

    Un langage est ambigue de facon inherente si toutes les grammairesqui lengendrent sont ambigues.On dira quun langage est non ambigue sil nest pas ambigue de faconinherente.

    Lemme de Parikh

    Il existe un langage ambigue de facon inherente.

    L = {apbqc r |p = q ou q = r avec p, q, r 1}

    22 / 27Theorie des langages

    N

  • Grammaires

    Grammaires ambigues

    Theore`me

    Etant donne une grammaire G , un mot est genere par G (SG

    w) si

    et seulement si il existe un arbre de derivation qui gene`re w .

    Langage ambigue

    Un langage est ambigue de facon inherente si toutes les grammairesqui lengendrent sont ambigues.On dira quun langage est non ambigue sil nest pas ambigue de faconinherente.

    Lemme de Parikh

    Il existe un langage ambigue de facon inherente.

    L = {apbqc r |p = q ou q = r avec p, q, r 1}

    22 / 27Theorie des langages

    N

  • Grammaires

    Grammaires ambigues

    Theore`me

    Etant donne une grammaire G , un mot est genere par G (SG

    w) si

    et seulement si il existe un arbre de derivation qui gene`re w .

    Langage ambigue

    Un langage est ambigue de facon inherente si toutes les grammairesqui lengendrent sont ambigues.On dira quun langage est non ambigue sil nest pas ambigue de faconinherente.

    Lemme de Parikh

    Il existe un langage ambigue de facon inherente.

    L = {apbqc r |p = q ou q = r avec p, q, r 1}

    22 / 27Theorie des langages

    N

  • Grammaires

    Grammaires

    Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires

    23 / 27Theorie des langages

    N

  • Grammaires

    Caracterisation dun langage

    Proble`me

    Soit une grammaire G qui gene`re le langage L(G ).Soit L une caracterisation du langage genere.On veut prouver que L = L(G ).

    Grammaire G3

    1. S aS2. S aSbS3. S

    L = {w X |w prefixe de w alors |w |a |w |b}

    On doit montrer legalite de ces deux langages, on proce`de par doubleinclusion.

    L(G3) L. On proce`de par induction sur le nombre dutilisation desre`gles 1. et 2.

    L L(G3). On proce`de par induction sur la longueur des mots de L.

    24 / 27Theorie des langages

    N

  • Grammaires

    Caracterisation dun langage

    Proble`me

    Soit une grammaire G qui gene`re le langage L(G ).Soit L une caracterisation du langage genere.On veut prouver que L = L(G ).

    Grammaire G3

    1. S aS2. S aSbS3. S

    L = {w X |w prefixe de w alors |w |a |w |b}

    On doit montrer legalite de ces deux langages, on proce`de par doubleinclusion.

    L(G3) L. On proce`de par induction sur le nombre dutilisation desre`gles 1. et 2.

    L L(G3). On proce`de par induction sur la longueur des mots de L.

    24 / 27Theorie des langages

    N

  • Grammaires

    Caracterisation dun langage

    Proble`me

    Soit une grammaire G qui gene`re le langage L(G ).Soit L une caracterisation du langage genere.On veut prouver que L = L(G ).

    Grammaire G3

    1. S aS2. S aSbS3. S

    L = {w X |w prefixe de w alors |w |a |w |b}

    On doit montrer legalite de ces deux langages, on proce`de par doubleinclusion.

    L(G3) L. On proce`de par induction sur le nombre dutilisation desre`gles 1. et 2.

    L L(G3). On proce`de par induction sur la longueur des mots de L.24 / 27

    Theorie des langages

    N

  • Grammaires

    Grammaires

    Principe de baseDefinitionsArbres de derivationCaracterisation du langage genere par une grammaireTypes de grammaires

    25 / 27Theorie des langages

    N

  • Grammaires

    Types de grammaires

    Type 0 Pas de restriction

    Type 1 Grammaires contextuelles (ou sensibles au controle)(Context-sensitive)

    , || ||, V+

    Type 2 Grammaires hors-contexte (Context-Free)

    A

    Type 3 Grammaires regulie`res (ou lineaires a` droite)

    A wB A,B V \ non terminauxA w w terminaux

    26 / 27Theorie des langages

    N

  • Grammaires

    Types de grammaires

    T0

    T1Context sensitive

    Machine de Turing

    T2Context Free

    Automate a` pile

    T3Reguliers

    Automate fini

    27 / 27Theorie des langages

    N

    GrammairesPrincipe de baseDfinitionsArbres de drivationCaractrisation du langage gnr par une grammaireTypes de grammaires