Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Limbaje formale si automate
Lucrarea de laborator nr.3
A efectuat:
st. gr. SI-161 Malai Ion
A verificat:
lect., sup. Duca Ludmila
Chişinau 2017
1
Sarcina lucrării:
De redus Gramatica independentă de context la:
a) Forma Normală Chomsky
b) Forma Normală Greibach
Varianta 16
G=(Vn, Vt, P, S)
Vn = { S, A, B, C, D }
Vt = {a, b}
P = { 1. S → abA B
2. A → aSab
3. A → BS
4. A → aA
5. A → b
6. B → BA
7. B → ababB
8. B → b
9. B → ε
10. C → AS
11. D → BD}
Forma Normală Chomsky:
Reducerea gramaticii independente de context la FNC are loc prin parcurgerea mai
multor etape:
Pas 1: Eliminarea de ε-producții
P={ 1. S → abA B 6. A → aA 11. B → abab
2. S → abA 7. A → b 12. B → b
3. A → aSab 8. B → BA 13. C → AS
4. A → BS 9. B → A 14. D → BD
5. A → S 10. B → ababB 15. D → D}
R B={B, A}
A →bAB
P={S →a B B→B A
S→Da D →BAD
S→a D →BA
A →a C →BA
A →BD A→b
A →bDAB A→BA }
B→b
P={S →a B A→b
S→Da
S→a B→b
A →a B→B A
A →BD D →BAD
A →bDAB D →BA
A →bAB A→BA }
Y1→ a Y4→b
S→DY2 A→b
Y1→ a B→b
S→a B→B A
A →a D →BAD
A →BD D →BA
A →Y3DAB A→BA }
Y3→b
Pentru oricare producție tip b introducem terminale noi. Astfel obținem Forma Normală
Chomsky.
Y1→ a Z2→AB
S→DY2 Y4→b
Y1→ a A→b
S→a B→b
A →a B→B A
A →BD D → BZ3
Y3→b Z3→AD
A → Z1Z2 D →BA
Z1→Y3D A→BA }
1. S→CACY
2. S→CAC
3. Y→b
4. Y→bY
5. Z→SA
6. Z→SAZ
7. B→aA
8. B→aAZ
9. Q→AS
10.Q→ASQ
11.C→a
12.C→aQ
13.A→b
Cercetăm daca se respectă condiția FNG, facem substituțiile de rigoare daca e necesar:
1. S→aACY
2. S→aQACY
3. S→aAC
4. S→aQAC
5. Y→b
6. Y→bY
7. Z→CACA
8. Z→CACYA
9. Z→CACAZ
10.Z→CACAYZ
6
11.B→aA
12.B→aAZ
13.Q→bS
14.Q→bSQ
15.C→a
16.C→aQ
17.A→b
In urma modificărilor nu mai avem recursii stănga, și prin substituții vom obtine producții
ce satisfac FNG. Rezulta ca am finalizat transformarea, iar rezultatul dinal este:
P’={
1. S→aACY
2. S→aQACY
3. S→aAC
4. S→aQAC
5. Y→b
6. Y→bY
7. Z→aACA
8. Z→aQACA
9. Z→aACYA
10.Z→aQACYA
11.Z→aACAZ
12.Z→aQACAZ
13.Z→aQACAYZ
14.Z→aACAYZ
15.B→aA
16.B→aAZ
17.Q→bS
18.Q→bSQ
7
19.C→a
20.C→aQ
21.A→b}
Metoda II
Pas 1: Identificăm și eliminăm recursiile stînga:
1. S→BCY
2. Y→AY
3. Y→ε
4. B→CA
5. C→BS
6. C→a
7. A→b
Pas 3: (Repetăm pașii 1-2 atît timp cit avem modificări și pînă toate producțiile ajung la
FNG acceptată). Analizăm producțiile și identificăm recursiile de stânga apărute ulterior și
le eliminăm:
1. S→CACY
2. Y→bY
8
3. Y→ε
4. Z→SAZ
5. Z→ε
6. B→aAZ
7. Q→ASQ
8. C→aQ
9. Q→ε
10.A→b
Verificăm dacă producțiile satisfac condiției pentru Forma Normală Greibach, dacă
nu facem modificările posibile și cercetăm iarăși prezența recursiilor stânga. Dacă acestea
nu mai sunt prezente în rîndul producțiilor, substituim neterminalele din prima poziție prin
producțiile respective.
1.S→aQACY
2.Y→bY
3.Y→ε
4.Z→CACYAZ
5.Z→ε
6.B→aAZ
7.Q→bSQ
8.C→aQ
9.Q→ε
10.A→b
9
Forma Normală Greibach
P’={
1.S→aQACY
2.Y→bY
3.Y→ε
4.Z→aQACYAZ
5.Z→ε
6.B→aAZ
7.Q→bSQ
8.C→aQ
9.Q→ε
10.A→b}
Concluzii:
În urma aplicării datelor teoretice din cadrul cursului LFA, am aplicat algoritmii de
transformare a unei gramatici libere de context în Forma Normală Chomsky și Forma
Normala Greinbach. Astfel am însușit identificarea și eliminarea producțiilor ce conțin
redenumiri, elemente inaccesibile, recurențe, ε-producții din cadrul formelor normale
menționate antrerior.
La aplicarea algoritmului de transformare FNG am utilizat două metode de
eliminare de recurențe stînga, și am putut observa diferențele dintre producții finale
obținute.
A doua metodă permite și existența ε-producțiilor în P finale astfel din 2 producții
inițiale cercetate la recursie se obțin 3 producții finale, deci FNG detine ulterior un număr
mai restrîns de producții decît medoda I fără ε. În prima metodă rezultă dublarea
numărului de producții ce au recursie stînga (ex.la determinarea alfa și beta din 2 producții
transformăm în 4).
10
11