0% ont trouvé ce document utile (0 vote)
33 vues9 pages

Introduction aux grammaires formelles

Transféré par

sazualbert45
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues9 pages

Introduction aux grammaires formelles

Transféré par

sazualbert45
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Grammaire

• C’est un quadruplé: (T,N,S,P) où:


1. T ensemble des terminaux;
2. S: l’axiome (Point de départ);
3. N: ensemble des non terminaux;
4. P les règles de production.

PS: une règle de production correcte doit toujours contenir au moins un non terminal à
gauche de la flèche. (a→aa, n’est pas une règle de production correcte).
Exemple: Soit G une grammaire définie par les règles de production suivante:
S→aS/B
B→bB/C
C→cC/c

T={a,b,c}, N={S,B,C}, l’axiome: S, P est l’ensemble des 6 règles.


Langage généré par la grammaire de l’exemple:
S→aS(1) / B(2)
B→bB(3) / C(4)
C→Cc(5) / ε(6)
Point de départ c’est S:
S ├ aS├ aaS ├* anS ├ anB ├ anbB ├ anbbB ├* anbmB ├ anbmC ├

anbmCc ├* anbmCck ├ anbmck

L(G)={an bm ck, n≥0,m≥0, k ≥0}


Autres grammaires générant le même langage : L(G)={an bm ck,
n≥0,m≥0, k ≥0}

S→ABC
A→aA / ε
B→bB / ε
C→cC / ε
----------------------------------------------------------------------------------------
S→aS / Sc/B
B→bB / ε
Exemple 2 :
L(G)={an bn , n≥1}, les grammaires suivantes generent elles Ce langage?
S→AB
L(G)={a b ,n,m≥0}
n m
A→aA / ε
B→bB / ε
-----------------------------------------------------------------
S→aS / Sb/ab L(G)={a b ,n,m≥1}
n m

-----------------------------------------------------------------
S→abS / ε L(G)={(ab) , n≥0} n

-----------------------------------------------------------------
S→aSb / ε L(G)={a b ,n≥0}
n n

-----------------------------------------------------------------
S→aSb / ab (Correcte)
Exemple 3:

L(G)={an bm , n≥m ≥ 1}
Cette Grammaire génère -t- elle le ce langage?

S→aSb / a

On se pose la question sur le mot aaab? Appartient il au langage


L? Peut il être généré par cette grammaire?
L(G)={an+1 bn , n≥0}
• Exemple 3: L(G)={an bm , n≥m ≥ 1}
Cette Grammaire génère -t- elle le ce langage?
S→aS / Sb/ A
A→aA / ε
Le mot abb peut-il être généré par cette grammaire? Appartient-il au
langage L?
L(G)={an bm , n,m≥0}

------------------------------------------------------------------------------------------
S→aSb / A
A→aA / a
Le mot ab peut-il être généré par cette grammaire? Appartient-il au
langage L?
L(G)={an bm , n>m≥0}
Exemple 3: L(G)={an bm , n≥m ≥ 1}

Voici des grammaires générant ce langage.

S→aSb / aAb
A→aA / ε
--------------------------------------------------------------------
S→aSb / A
A→aA / ab
-------------------------------------------------------------
S→aSb / aS/ab
Exemple 4: L(G)={ω{a,b}*, ІωІa ≡0[3]}
Laquelle de ces solutions est correcte?

S→aaaS / bS / ε
Le mot ababa appartient-il au langage? Peut-il être généré par cette
grammaire?
---------------------------------------------------------------
S→ bS / aA / ε
A→bA / aB
B→bB / aS
• Exemple 5 : L(G)={an bn cn , n≥0}
Utilisation des permutations:

S→aSBC / ε (Avec ces deux règles nous aurons an(BC)n.)


CB →BC (A chaque fois qu’on trouve un C avant un B , on le remet
derrière).
aB →ab (S’il y des a avant le B, je serai sûr qu’il n y a pas de C avant).
bB →bb (S’il y un b avant le B, je serai sûr qu’il n y a pas de C avant).
bC →bc (S’il y un b avant le C, alors toutes les lettres sont à leur place « an
bn Cn»).
cC →cc (Transformer les autres C).

Vous aimerez peut-être aussi