Sunteți pe pagina 1din 12

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

Facultatea Calculatoare, Informatică şi Microelectronică


Departamentul Ingineria Software şi Automatică

RAPORT
Lucrarea de laborator NR.3

Tema: Forma normală Chomsky și Greibach

A efectuat: Laşco Daniil, TI-171


A verificat: Duca Ludmila, lector universitar

Chişinău 2018
Obiectivele lucrării:
De redus Gramatica independent de context la :
a) Forma Normală Chomsky
b) Forma Normală Greibach
Datele oferite:

Forma Normală Chomsky

G = (VN,VT,P,S)
VN = {S, A, B, C, D}
VT = { a, d }
P={
1: S  dB
2: S  dB
3: A  d
4: A  dS
5: A  aAdAB
6: B  a
7: B  As
8: S  A
9: B  ε
10 : C  Aa
11 : D  Da
}

Forma Normală Greibach

G = (VN,VT,P,S)
VN = {S, A, B, C }
VT = { a, b }
P={
1: S  bA
2: A  BC
3: B  b
4: B  A
5: C  CBA
6: C  a
}

Mersul lucrării:

Forma Normală Chomsky

G = (VN,VT,P,S)
VN = {S, A, B, C, D}
VT = { a, d }
P={
1: S  dB
2: S  dB
3: A  d
4: A  dS
5: A  aAdAB
6: B  a
7: B  As
8: S  A
9: B  ε
10 : C  Aa
11 : D  Da
}
1.Eliminarea ε producţii, și înlocuirea acestuia în producții

Nε ={ B }
PI = {
1: S  d
2: S  dB
2: S  A
3: A  d
4: A  dS
5: A  aAdA
6: A  aAdAB
7: B  a
8: B  aS
9: B  A
10: B  Aa
11: D  Da
}
2.Eliminarea redenumiriilor

[NM]

SA,BA

RS = { S }

RB = { S }

RA = {A, S, B}

PII = {
1: S  d
2: S  dB
3: A  d
4: A  dS
5: A  aAdA
6: A  aAdAB
7: B  a
8: B  aS
9: C  Aa
11: D  Da
12: S  dS
13: S  aAdA
14: S  aAdAB
15: B  d
16: B  dS
17: B  aAdA
18: B  aAdAB }
3.Eliminarea simboluriilor inaccesibile

NAC = { a, d , B, S, A, D}

NIC = (VN  VT) \ NAC = {C,D}

VN = { B, S, A}

VT = { a,d }

PIII = {
1: S  d
2: S  dB
3: A  d
4: A  dS
5: A  aAdA
6: A  aAdAB
7: B  a
8: B  aS
9: S  dS
10: S  aAdA
11: S  aAdAB
12: B  d
13: B  dS
14: B  aAdA
15: B  aAdAB }

4.Eliminarea simboluriilor neproductive

VP = {S,B,C}
VNP = VNP / VP = 
5. Forma normal Chomsky
A  AB

Ab

PIV = {
1: X1  d
2: S  X1B
3: A  d
4: A  X1S
5: X2  a
6: A  X2X3
7: X3 AX4
8: X4  X1A
9: A  X2X5
10: X5  X3B
11: B  a
12 : B  X2S
13 : S  X1S
14 : S  X2X5
15 : S  X2X3
16 : B  d
17: B  X1S
18: B  X2X5
19: B  X2X3

VN = { B, S, A , X1 , X2, X3, X4, X5 }

VT = { a,d }
Forma Normală Greibach
G = (VN, VT, P,S)
VN = {S, A, B, C }
VT = { a, b }
P={
1: S  bA
2: A  BC
3: B  b
4: B  A
5: C  CBA
6: C  a
}
Forma analitică I
A
A  X
X
X  X

Forma normală Greibach


A  a ,   VN*
PI = {
1: S  bA
2: S  BC
3: B  b
4: B  A
5: C  a
6: C  aX
7: X  BA
8: X  BAX
}
PII = {
1: S  bA
2: A  bC
3: A  AC
4: B  b
5: B  BC
6: C  a
7: C  aX
8: X  bA
9: X  BCA
8: X  AAX
}

PIII = {
1: S  bA
2: A  bC
3: A  bCY
4: Y  C
5: Y  CY
6: B  b
7: B  bZ
8: Z  C
9: Z  CZ
8: X  AAX
}

PIV = {
1: S  bA
2: A  bC
3: A  bCY
4: Y  a
5: Y  aX
6: B  b
7: B  bZ
8: Z  a
9: Z  aX
8: C  a
9: C  aX
10: X  bA
11: X  bCA
12: X  bZCA
13: X  bAX
14: X  bCAX
15: X  bCY
}
VN = { S,A,X,Y,B,Z,C}

VT = { a, b }

Forma analitică II

A  X
X  X
Xε

Forma normală Greibach


A  a ,   VN*
P ={
1: S  bA
2: A  BC
3: B  b
4: B  A
5: C  CBA
6: C  a
}
PII = {
1: S  bA
2: A  BC
3: B  b
4: B  A
5: C  aX
6: X  BAX
7: X  ε
}

PIII = {
1: S  bA
2: A  BC
3: A  AC
4: B  b
5: B  BC
6: C  aX
7: X  bAX
8: X  AAX
9: X  ε
}

PIV = {
1: S  bA
2: A  bCY
3: Y  CY
4: Y  ε
5: B  bZ
6: Z  cZ
7: Z  ε
8: C  aX
9: X  bAX
10: X  AAX
11: X  ε
}

PV = {
1: S  bA
2: A  bCY
3: Y  aXY
4: Y  ε
5: B  bZ
6: Z  aXZ
7: Z  ε
8: C  aX
9: X  bAX
10: X  bCYAX
11: X  ε
}
VN = { S,A,X,Y,B,Z,C}

VT = { a, b, ε }

Concluzie:

Efectuarea lucrării date are ca scop deprinderea tehnicilor de lucru cu metodele de aducere a gramticii
la o forma normala Chomsky și Greibach. Prin analiza acestor metode, care presupun o serie de operații, se
obsevă ca ambele forme ajung să derive un simbol terminat pe prima poziție, sau un terminat si un
neterminal.
Algoritmul Chomsky cît Greibach (care are două forme de implimentare) , presupune o serie de
operație care duc la eliminarea producțiilor neproductive, astfel obținînduse un vocabular al neterminalilor
nou, față de cel inițial propus.