Sunteți pe pagina 1din 16

Ministerul Educaţiei, Culturii și Cercetării Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatică şi Microelectronică

Departamentul ISA

RAPORT
Lucrare de laborator Nr.3
La Limbaje Formale si Automate
Tema: a) Forma Normală Chomsky (FNC)
b) Forma Normală Greibach (FNG)

A efectuat:
st. gr. TI-162 Goncearov Vladislava

A verificat:
lect., sup. Duca Ludmila

Chisinau 2016
1
CUPRINS:
1. SCOPUL ȘI SARCINA LUCRĂRII…………………………………………….. 3
2. EFECTUAREA LUCRĂRII …………………………………………………….. 4
a) Sarcina a.............................................................................................................. 4
b) Sarcina b.............................................................................................................. 9
3. CONCLUZII ……………………………………………………………………… 12
4. ANEXE ……………………………………………………………………………. 13
a) ANEXA 1 –efectuarea sarcinii cu ajutorul JFLAP-ului……………………. 13

Scopul lucrarii
Pentru sarcina a)

2
1. Eliminati  productii.
2. Eliminati redenumirile.
3. Eliminati simbolurile inaccesibile.
4. Eliminati simbolurile neproductive.
5. Aduceti la Forma Normala Chomsky.
Pentru sarcina b)
1. Eliminați recursiile de stânga
2. Aduceti la Forma Normală Greibach

Sarcina a)
G = (VN , VT , P, S ) VN = {S , A, B, C , D} VT = {a, b}

P = {1. S � aB
8. B � b
2. S � bA
9. B � bS
3. S � A
10. B � aD
4. A � B
11. B � ε
5. A � Sa
12. D � AD
6. A � bBA
13. C � Ba}
7. A � b

Sarcina b)
G = (VN , VT , P, S ) VN = {S , A, B, C} VT = {a, b}

P={ 1. S � AC
2. S � SCB
3. A � CB
4. B � a
5. C � A
6. C � b }.

SARCINA a)

3
N={B,A}
P = {1. S � aB
RA ={A,S} 2. S � a
1 .Eliminam  productii
RB ={B,A,S} 3. S � bA
N={B}
4. S � b
P = {1. S � aB RS ={S} 17. D � D
P = {1. S � aB 5. S � A
2. S � bA 18. C � Ba
2.RDS={D}
�a
6. S � ε
3. S � A 19. C � a }
P =S {1.
3. S � aB
� bA
7. A � B
4. A � B 2. SS � A
4. a
8. A � Sa
5. A � Sa 3. A
5. S��BbA
9. A � bBA
6. A � bBA S � bε
4. A
6. 10. A � bB
7. A � b A �Sa
5. A
7. 11. A � bA
8. B � b A �bBA
6. A
8. a
12. A � b
9. B � bS 7. A
9. A � bA
bBA
13. B � b
10. B � aD 8. AA�
10. �bBb 14. B � bS�
11. B � ε 9. AB� P = {1. S aB
11. �bA
b 15. B � aD
12. D � AD 10. B
A�� bS
b 2. S � a
12. � AD
16. D �
13. C � Ba} 12. B
B��aD
bS 3. S bA
13.
B � AD
13. D b 4. S � b
14.
14. C
B��Ba
aD 5. A � Sa
15.
15. C
D��aAD 6. A � a
16. }
16. C � Ba 7. A � bBA
N={B,A,S}17. C � a 8. A � bB
12. A � b
P = {1. S �
18.aBS � Sa 9. A � bA
13. B � bS
2. S � a 19. S � a 10. A � b
14. B � b
3. S � bA 20. S � bBA 11. B � bS
15. B � aD
4. S � b 21. S � bB 12. B � b
16. D � AD
5. S � A 22. S � bA 13. B � aD
17. D � D
6. A � B 23. S � b 14. D � AD
18. C � Ba
7. A � Sa 25. A � b 15. C � Ba
19. C � a }
8. A � a 24. A � bS 16. C � a

9. A � bBA
26. A � aD 17. S � Sa

10. A � bB27.S � bS 18. S � bBA

11. A �
3. Eliminăm redenumirile
bA28. S � b 19. S � bB

29. S � aD} 20. A � bS


P = {1. S � aB
21. A � aD
4
22.S � bS
23. S � aD}
2. S � a
3. S � bA
4. S � b
5. S � A
6. A � B
7. A � Sa
8. A � a
9. A � bBA
10. A � bB
11. A � bA
12. A � b
13. B � bS
14. B � b
15. B � aD
16. D � AD
17. D � D
18. C � Ba
19. C � a }

10. A � b
11. B � bS
18. S � bBA
12. B � b
3. Eliminam simbolurile inaccesibile 19. S � bB
13. B � aD
P = {1. S � aB 20. A � bS
14. D � AD
21. A � aD
15. C � Ba 5
22.S � bS
16. C � a
23. S � aD}
17. S � Sa
2. S � a
3. S � bA
4. S � b
5. A � Sa
6. A � a
7. A � bBA
8. A � bB
9. A � bA

AC ={S}
AC ={S, A, B, D, a, b}
I=(VN U VT)\ Ac={C}

P = {1. S � aB
16. S � bBA
2. S � a
17. S � bB
3. S � bA
18. A � bS
4. S � b
19. A � aD
5. A � Sa
20.S � bS
6. A � a
21. S � aD} P = {1. S � aB
7. A � bBA
2. S � a
8. A � bB
3. S � bA
9. A � bA
4. S � b
10. A � b
5. A � Sa
11. B � bS
6. A � a
12. B � b
7. A � bBA
13. B � aD
8. A � bB
14. D � AD
9. A � bA
15. S � Sa
10. A � b
11. B � bS
12. B � b
4. Eliminam simbolurile neproductive
13. S � Sa
P = {1. S � aB 14. S � bBA
Pr = �
15. S � bB
Pr ={S, A, B} 6
16. A � bS
N = VN \ Pr ={D}
17. S � bS}
2. S � a
3. S � bA
4. S � b
5. A � Sa
6. A � a
7. A � bBA
8. A � bB
9. A � bA
10. A � b
11. B � bS
12. B � b
13. B � aD
14. D � AD P = {1. S � X 1 B
15. S � Sa
2. X 1 � a
16. S � bBA
3. S � a
17. S � bB
4. S � X 2 A
18. A � bS
19. A � aD 5. X 2 � b

20. S � bS 6. S � b

21. S � aD} 7. A � S X 1
8. A � a
9. A � X 2 X 3

10. X 3 � BA

11. A � X 2 B

12. A � X 2 A
13. A � b
14. B � X 2 S
15. B � b
5.Aducem la Forma Normala Chomsky 16. S � S X 1

17. S � X 2 X 3
P = {1. S � aB
18. S � X 2 B
7
19. A � X 2 S

20. S � X 2 S }
2. S � a
3. S � bA
4. S � b
5. A � Sa
6. A � a
7. A � bBA
8. A � bB
9. A � bA
10. A � b
11. B � bS
12. B � b
13. S � Sa
14. S � bBA
15. S � bB
16. A � bS
17. S � bS}

SARCINA b)
G = (VN , VT , P, S ) VN = {S , A, B, C} VT = {a, b}

P={ 1. S � AC
8
2. S � SCB
3. A � CB
4. B � a
5. C � A
6. C � b }.

Verificăm dacă avem recursie stânga


P={ 1. S � AC
2. S � SCB
3. A � CB
4. B � a
5. C � A
6. C � b }.

Eliminam recurisa prin ambele metode

Metoda 1 Metoda 2
P={ 1. S � AC P={ 1. S � ACY
2. S � ACY 2. Y � CBY
3. Y � CBY 3. Y � 
4. Y � CB
4. A � CB
5. A � CB
5. B � a
6. B � a
6. C � A
7. C � A
7. C � b }.
8. C � b }.

Aducem la Forma Normala Greibach (FNG)


Se substituie neterminalele din prima pozitie cu productiile respective.
Dupa Metoda 1 Dupa Metoda 2

P={ 1. S � CBC P={ 1. S � CBCY


8. A � bB 8. C � CB
2. S � CBCY 2. Y � ABY
9. B � a 9. C � b }
3. Y � ABY 3. Y � bBY
10. C � CB
4. Y � bBY 4. Y � 
11. C � b}
5. Y � AB
5. A � AB 9
6. Y � bB
6. A � bB
7. A � AB
7. B � a
In rezultatul acestor

În urma substituiri a apărut recursia stânga, de aceea repetăm pasul și eliminăm recursia de stânga.

Eliminam recursia stinga

Metoda 1 Metoda 2
P={ 1. S � CBC P={ 1. S � CBCY
2. S � CBCY 2. Y � ABY
3. Y � ABY 3. Y � bBY
4. Y � bBY
4. Y � 
5. Y � AB
5. A � bBX
6. Y � bB
6. X � ABX
7. A � bB
7. X � 
8. A � bBX
8. B � a
9. X � AB
9. Z � CBZ
10. X � ABX
10. C � bZ
11. B � a
12. Z � B 11. Z �  }

13. Z � BZ
14. C � b
15. C � bZ}
Dupa Metoda 1 Dupa Metoda 2
P={ 1. S � bBC P={ 1. S � bZBCY
Aducem la Forma
2. S � bZBC Normala Greibach (FNG)
2. Y �respective.
Se substituie neterminalele din prima pozitie cu productiile bBXBY
3. S � bBCY 3. Y � bBY
4. S � bZBCY 13. X � bBB
4. Y � 
5. Y � bBBY 14. X � bBXB
5. A � bBX
6. Y � bBXBY 15. X � bBBX
6. X � bBXBX
7. Y � bBY 16. X � bBXBX
17. B � a 7. X � 
8. Y � bBB
18. Z � a 8. B � a
9. Y � bBXB
19. Z � aZ 9. Z � bZBZ
10. Y � bB 10
20. C � b 10. C � bZ
11. A � bB
12. A � bBX 21. C � bZ } 11. Z �  }
CONCLUII

În urma efectuării acestei lucrării de laborator am capătat experiență în lucrul cu eliminarea


producțiilor, eliminarea redenumirilor, eliminarea simbolurilor inaccesibile, eliminarea simbolurilor
neproductive si aducerea la Forma Normala Chomsky, precum si lucrul cu toate acestea prin programul
JFLAP, care ne poate facilita cu mult rezolvarea acestor probleme.
De asemenea am capatat experiența în lucrul cu eliminarea recursiei stânga și aducerea la Forma

Normala Greibach. Am eliminat recurisia stânga prin ambele metode ( Metoda 1: A � b1 , A � b1Y ,

11
Y � a1 , Y � a1Y ) si ( Metoda 2: A � b1Y , Y � a1Y , Y �  ) apoi am adus exemplul nostrul la Forma

Normala Greibach dupa Metoda 1 si dupa Metoda 2.

ANEXA 1

Transformarea gramaticii independente de context in FNC cu ajutorul programului JFLAP

1.Eliminarea  productii

12
2. Eliminam redenumirile

13
3,4. Eliminam simbolurile inaccesibile si neproductive

14
5. Aducem la Forma Normala Chomsky

15
16