a tvasinā šanas kārtība

98
1 Atvasināšanas kārtība AB S . 1 A aaA A . 3 . 2 B Bb B . 5 . 4 aab aaBb aaB aaAB AB S 5 4 3 2 1 Atvasinājums, sākot no kreisās puses : aab aaAb Ab ABb AB S 3 2 5 4 1 Atvasinājums, sākot no labās puses :

Upload: alaula

Post on 19-Mar-2016

52 views

Category:

Documents


5 download

DESCRIPTION

A tvasinā šanas kārtība. A tvasinājums , sākot no kreisās puses :. A tvasinājums , sākot no labās puses :. A tvasinājums , sākot no kreisās puses:. A tvasinājums , sākot no labās puses:. A tvasinājum a koki. A tvasinājum a koks. A tvasinājum a koks. dod. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A tvasinā šanas  kārtība

1

Atvasināšanas kārtība

ABS .1

A

aaAA.3.2

BBbB

.5

.4

aabaaBbaaBaaABABS54321

Atvasinājums, sākot no kreisās puses :

aabaaAbAbABbABS32541

Atvasinājums, sākot no labās puses :

Page 2: A tvasinā šanas  kārtība

2

|ABbBbAaABS

Atvasinājums, sākot no kreisās puses:

abbbbabbbbBabbBbbBabAbBabBbBaABS

Atvasinājums, sākot no labās puses:

abbbbabbBbbabAbabBbaAaABS

Page 3: A tvasinā šanas  kārtība

3

Atvasinājuma koki

Page 4: A tvasinā šanas  kārtība

4

ABS

ABS |aaAA |BbB

S

BA

Page 5: A tvasinā šanas  kārtība

5

ABS |aaAA |BbB

aaABABS

a a A

S

BA

Page 6: A tvasinā šanas  kārtība

6

ABS |aaAA |BbB

aaABbaaABABS S

BA

a a A B b

Page 7: A tvasinā šanas  kārtība

7

ABS |aaAA |BbB

aaBbaaABbaaABABS S

BA

a a A B b

Page 8: A tvasinā šanas  kārtība

8

ABS |aaAA |BbB

aabaaBbaaABbaaABABS S

BA

a a A B b

Atvasinājuma koks

Page 9: A tvasinā šanas  kārtība

9

aabaaBbaaABbaaABABS

dod

aabbaa

S

BA

a a A B b

Atvasinājuma koks

ABS |aaAA |BbB

Page 10: A tvasinā šanas  kārtība

10

Daļēja atvasinājuma koki

ABS

S

BA

Daļējs atvasinājuma koks

ABS |aaAA |BbB

Page 11: A tvasinā šanas  kārtība

11

aaABABS

S

BA

a a A

Daļējs atvasinājuma koks

Page 12: A tvasinā šanas  kārtība

12

aaABABS

S

BA

a a A

Daļējs atvasinājuma koks

sentenciālaforma

dodaaAB

Page 13: A tvasinā šanas  kārtība

13

aabaaBbaaBaaABABS

aabaaAbAbABbABS S

BA

a a A B b

Tāds pats atvasinājuma koks

Dažreiz atvasināšanas kārtība nav būtiskaSākot no kreisās puses:

Sākot no labās puses:

Page 14: A tvasinā šanas  kārtība

14

Neviennozīmība

Page 15: A tvasinā šanas  kārtība

15

aEEEEEE |)(|| aaa

E

EE

EE

a

a a

aaaEaaEEaEaEEE*

atvasinājums,sākot no kreisās puses

Page 16: A tvasinā šanas  kārtība

16

aEEEEEE |)(|| aaa

E

EE

a a

EE a

aaaEaaEEaEEEEEE

Atvasinājums, sākot no kreisās puses

Page 17: A tvasinā šanas  kārtība

17

aEEEEEE |)(|| aaa

E

EE

a a

EE a

E

EE

EE

a

a a

divi atvasinājuma koki

Page 18: A tvasinā šanas  kārtība

18

Gramatika aEEEEEE |)(|| ir neviennozīmīga:

E

EE

a a

EE a

E

EE

EE

a

a a

virknei aaa ir divi atvasinājuma koki

Page 19: A tvasinā šanas  kārtība

19

virknei ir divi atvasinājumi, sākot atvasināt no kreisās puses.

aaa

aaaEaaEEaEEEEEE

aaaEaaEEaEaEEE*

Gramatika aEEEEEE |)(|| ir neviennozīmīga:

Page 20: A tvasinā šanas  kārtība

20

Definīcija:Bezkonteksta gramatika G ir neviennozīmīga, ja kādai virknei ir divi vai vairāk dažādi atvasinājuma koki.

)(GLw

Page 21: A tvasinā šanas  kārtība

21

Citiem vārdiem:Bezkonteksta gramatika G ir neviennozīmīga, ja kādai virknei ir divi vai vairākatvasinājumi, sākot atvasināšanu no kreisās puses (vai sākot nolabās puses).

)(GLw

Page 22: A tvasinā šanas  kārtība

22

Kāpēc jāuztraucas par neviennozīmību?

E

EE

a a

EE a

E

EE

EE

a

a a

aaa

Ņemam 2a

Page 23: A tvasinā šanas  kārtība

23

E

EE

EE

E

EE

EE

222

2

2 2 2 2

2

Page 24: A tvasinā šanas  kārtība

24

E

EE

EE

E

EE

EE

6222

2

2 2 2 2

2

8222

4

2 2

2

6

2 2

24

8

Page 25: A tvasinā šanas  kārtība

25

E

EE

EE

6222

2

2 2

4

2 2

2

6

Pareizais rezultāts:PārbaudīsimWindowskalkulatoru(standard / scientific režīmos) !

Page 26: A tvasinā šanas  kārtība

26

• Mēs vēlamies izslēgt neviennozīmību.

• Neviennozīmība ir slikta programmēšanas valodās.

Page 27: A tvasinā šanas  kārtība

27

Vai var “izlabot” neviennozīmīgu gramatiku?aEEEEEE |)(||

Atbilstošā viennozīmīga gramatika:

aFEFFTFTT

TETEE

)(

Page 28: A tvasinā šanas  kārtība

28

aFEFFTFTT

TETEE

)(

aaaFaaFFaFTaTaTFTTTEE

E

E T

T F

F

a

T

F

a

a

aaa

Page 29: A tvasinā šanas  kārtība

29

E

E T

T F

F

a

T

F

a

a

aaa

Viennozīmīgs atvasinājuma koks

Page 30: A tvasinā šanas  kārtība

30

Gramatika G :

aFEFFTFTT

TETEE

)(

ir viennozīmīga:katrai virknei irviens vienīgs atvasinājuma koks

)(GLw

Page 31: A tvasinā šanas  kārtība

31

“Iedzimtā” neviennozīmība

Dažām bezkonteksta valodāmir tikai neviennozīmīgas gramatikas

Piemērs: }{}{ mmnmnn cbacbaL

||11

aAbAAcSS

||22

bBcBBaSS

21 | SSS

Page 32: A tvasinā šanas  kārtība

32

virknei nnn cba

ir divi atvasinājuma koki

S

1S

S

2S

1S c 2Sa

Page 33: A tvasinā šanas  kārtība

33

Sintakses analizētājs

Leksikasanalizētājs

Kompilators

programma mašīnkods

ievads izvads

Page 34: A tvasinā šanas  kārtība

34

Sintakses analizētājs “zin”programmēšanas valodas gramatiku.

Page 35: A tvasinā šanas  kārtība

35

Sintakses analizētājsprogramma STMT_LISTSTMT_LIST STMT; STMT_LIST | STMT;STMT EXPR | if_STMT | WHILE_STMT | { STMT_LIST }

EXPR EXPR + EXPR | EXPR - EXPR | IDif_STMT if (EXPR) then STMT | if (EXPR) then STMT else STMTWHILE_STMT while (EXPR) do STMT

Page 36: A tvasinā šanas  kārtība

36

Sintakses analizētājs atrod katra konkrēta ievada atvasinājumu

10 + 2 * 5

sintakses analizētājs

E E + E | E * E | INT

E E + E E + E * E 10 + E*E 10 + 2 * E 10 + 2 * 5

ievads atvasinājums

Page 37: A tvasinā šanas  kārtība

37

10

E

2 5

E E + E E + E * E 10 + E*E 10 + 2 * E 10 + 2 * 5

atvasinājumsatvasinājuma koks

E E

E E

+

*

Page 38: A tvasinā šanas  kārtība

38

Sintakses analīze

Page 39: A tvasinā šanas  kārtība

39

gramatika

sintakses analizētājs

ievadavirkne atvasinājums

Page 40: A tvasinā šanas  kārtība

40

Piemērs:

sintakses analizētājs

atvasinājums

SbSaSaSbSSSSievads

?aabb

Page 41: A tvasinā šanas  kārtība

41

Atrodatvasinājumu

Izsmeļošā meklēšana

||| bSaaSbSSS

1.fāze:

SbSaSaSbSSSS aabb

visi iespējamie atvasinājumi garumā 1

Page 42: A tvasinā šanas  kārtība

42

SbSaSaSbSSSS aabb

Page 43: A tvasinā šanas  kārtība

43

2.fāze

aSbSSSS

aabb

SSSSbSaSSSSaSbSSSSSSSSSS

1.fāze

abaSbSabSabaSbSaaSbbaSbSaSSbaSbS

||| bSaaSbSSS

Page 44: A tvasinā šanas  kārtība

44

2.fāze

SSSSaSbSSSSSSSSSS

aaSbbaSbSaSSbaSbS

3.fāzeaabbaaSbbaSbS

||| bSaaSbSSS

aabb

Page 45: A tvasinā šanas  kārtība

45

Izsmeļošās analīzes beigu rezultāts

sintakses analizētājs

atvasinājums

SbSaSaSbSSSS

ievadsaabb

aabbaaSbbaSbS

(lejupejoša analīze)

Page 46: A tvasinā šanas  kārtība

46

Cits piemērs ar to pašu gramatiku:

sintakses analizētājsatvasinājumsievads

?aaba

SbSaSaSbSSSS

Page 47: A tvasinā šanas  kārtība

47

Laiks 1.fāzei: k

k iespējamie atvasinājumi

Gramatikai ar k likumiem

Page 48: A tvasinā šanas  kārtība

48

Laiks 2.fāzei : k2

k2 iespējamie atvasinājumi

Page 49: A tvasinā šanas  kārtība

49

Kopējais virknei w nepieciešamais laiks:

||2 wkkk

Gauži slikti!!!

1.fāze 2.fāze

Page 50: A tvasinā šanas  kārtība

50

Specializētām gramatikām eksistē ātrāki algoritmi

S-gramatika: axA

simbols netermināļuvirkne

),( aA parādās vienreizPāris

Page 51: A tvasinā šanas  kārtība

51

S-gramatikas piemērs:

cSbSSSaSS

abccabcSabSSaSS

Katrai virknei ir viens vienīgs atvasinājums

Page 52: A tvasinā šanas  kārtība

52

Izsmeļošās analīzes gaitā katrā fāzē irviena vienīga iespēja

S-gramatikām:

Kopējais virknes w analīzei nepieciešamais laiks : |w|

Fāzei nepieciešamais laiks: 1

Page 53: A tvasinā šanas  kārtība

53

Vispārīgi bezkonteksta gramatikām:

Eksistē analīzes algoritms, kas virkni w

analizē laikā |w|3

Page 54: A tvasinā šanas  kārtība

54

Bezkonteksta gramatiku vienkāršošana

Page 55: A tvasinā šanas  kārtība

55

bBabbABabBcAaaAAaA

Page 56: A tvasinā šanas  kārtība

56

Aizvietošanas likums

bBabbABabBcAaaAAaA

abbcAababbAcAaaAAaA

Aizvieto B

Ekvivalentagramatika

Page 57: A tvasinā šanas  kārtība

57

Vispārīgi:

nyyyB

xBzA

||| 21

Aizvieto B

zxyzxyzxyA n||| 21 ekvivalentagramatika

Page 58: A tvasinā šanas  kārtība

58

Nederīgas produkcijas

aAAAS

SaSbS

aAaaaaAaAAS

Daži atvasinājumi nekad nebeidzas...

nederīga produkcija

Page 59: A tvasinā šanas  kārtība

59

bABA

aAAAS

Cita gramatika:

Nav sasniedzama no S

nederīga produkcija

Page 60: A tvasinā šanas  kārtība

60

Vispārīgi:

ja wxAyS

Tad neterminālis A ir derīgs

Pretējā gadījumā neterminālis Air nederīgs

)(GLw

Page 61: A tvasinā šanas  kārtība

61

Produkcija ir derīga, ja visitajā ietilpstošie netermināļi ir derīgi.

xA

Page 62: A tvasinā šanas  kārtība

62

Nederīgo produkciju izmešana

Gramatikas piemērs :

aCbCaaBaA

CAaSS

||

Page 63: A tvasinā šanas  kārtība

63

Vispirms atrodam visus netermināļus, kas producē termināļu virknes

aCbCaaBaA

CAaSS

|| },{ BA

},,{ SBA

1.posms :

2.posms:

Page 64: A tvasinā šanas  kārtība

64

Saglabā tikai tos netermināļus , kas producē terminālos simbolus

aCbCaaBaA

CAaSS

||

},,{ SBA

aaBaA

AaSS

|

Page 65: A tvasinā šanas  kārtība

65

Otrkārt, atrod visus netermināļus, kassasniedzami no S

aaBaA

AaSS

|

S A B

Atkarības grafs

nav sasniedzams

Page 66: A tvasinā šanas  kārtība

66

Saglabā tikai tos netermināļus, kassasniedzami no S

aaBaA

AaSS

|

aAAaSS

|

Beigu gramatika

Page 67: A tvasinā šanas  kārtība

67

Anulējami mainīgie

:produkcija A

Anulējams mainīgais: A

Page 68: A tvasinā šanas  kārtība

68

Anulējamu mainīgo izmešana

Gramatikas piemērs :

MaMbMaMbS

Anulējams mainīgais

Page 69: A tvasinā šanas  kārtība

69

M

MaMbMaMbS

Aizvieto

abMaMbMabSaMbS

Beigu gramatika

Page 70: A tvasinā šanas  kārtība

70

Vienības produkcijas

BAVienības produkcija:

Page 71: A tvasinā šanas  kārtība

71

Vienības produkciju izmešana

Novērojums:

AA

jāizmet uzreiz

Page 72: A tvasinā šanas  kārtība

72

Gramatikas piemērs:

bbBABBAaAaAS

Page 73: A tvasinā šanas  kārtība

73

bbBABBAaAaAS

AizvietoBA

bbBBAB

aAaBaAS

|

|

Page 74: A tvasinā šanas  kārtība

74

Izmet

bbBBAB

aAaBaAS

|

|

bbBABaA

aBaAS

|

BB

Page 75: A tvasinā šanas  kārtība

75

AizvietoAB

bbBaA

aAaBaAS

||

bbBABaA

aBaAS

|

Page 76: A tvasinā šanas  kārtība

76

Atkārtotu produkciju izmešana

bbBaA

aBaAS

|

bbBaA

aAaBaAS

||

Beigu gramatika

Page 77: A tvasinā šanas  kārtība

77

Visas izmešanas

1.solis: Anulējamu mainīgo izmešana

2.solis: Vienības produkciju izmešana

3.solis: Nederīgu mainīgo izmešana

Page 78: A tvasinā šanas  kārtība

78

PiemērsVienkāršot doto gramatiku:

|

|||

BADBCaCbBBBaAAA

CABS

Page 79: A tvasinā šanas  kārtība

79

Rezultāts:

bBBbBbBaAAaAaAABABS

|||||||

Page 80: A tvasinā šanas  kārtība

80

Bezkonteksta gramatiku normālformas

Page 81: A tvasinā šanas  kārtība

81

Homska normālformaVisas produkcijas ir formā

BCA

neterminālisneterminālis

aAvai

terminālis

Page 82: A tvasinā šanas  kārtība

82

Piemēri:

bASAAaSASS

Nav Homskanormālforma

aaASAAAASSASS

Homska normālforma

Page 83: A tvasinā šanas  kārtība

83

Pārveidošana uz Homska normālformu

Piemērs:

AcBaabAABaS

Nav Homskanormālforma

Page 84: A tvasinā šanas  kārtība

84

AcBaabAABaS

Definē jaunus netermināļus :

cTbTaTATB

TTTAABTS

c

b

a

c

baa

a

cba TTT ,,

Page 85: A tvasinā šanas  kārtība

85

Definē jaunu netermināli V1:

cTbTaTATB

TTTAABTS

c

b

a

c

baa

a

cTbTaTATB

TTTABTVAVS

c

b

a

c

baa

a

1

1

Page 86: A tvasinā šanas  kārtība

86

Definē jaunu netermināli V2:

cTbTaTATBTTVVTABTVAVS

c

b

a

c

ba

a

a

2

2

1

1

cTbTaTATB

TTTABTVAVS

c

b

a

c

baa

a

1

1

Page 87: A tvasinā šanas  kārtība

87

Beigu gramatika Homska normālformā:

cTbTaTATBTTVVTABTVAVS

c

b

a

c

ba

a

a

2

2

1

1

AcBaabAABaS

Sākuma gramatika

Page 88: A tvasinā šanas  kārtība

88

No katras bezkonteksta gramatikas, kas nav Homska normālformā, var iegūt ekvivalentu gramatiku Homska normālformā.

Vispārīgi:

Page 89: A tvasinā šanas  kārtība

89

Procedūra

vispirms izmet:

anulējamos netermināļus

vienības produkcijas

Page 90: A tvasinā šanas  kārtība

90

Katram simbolam : a

Produkcijās aizvieto ar a aT

Pievieno produkciju aTa

Jauns neterminālis: aT

Page 91: A tvasinā šanas  kārtība

91

Aizvieto katru produkciju nCCCA 21

ar

nnn CCV

VCVVCA

12

221

11

jauni netermināļi: 221 ,,, nVVV

Page 92: A tvasinā šanas  kārtība

92

Novērojumi

• Homska normālformas ir labasanalizēšanas un teorēmu pierādīšanasprocesos

• Ir ļoti viegli atrast Homska normālformu katrai bezkonteksta gramatikai

Page 93: A tvasinā šanas  kārtība

93

Uzdevums• Pārveidot Homska normālformā gramatiku:

ZWZZYYY

XYXXXXXS

|1|0|1|0||)(

Page 94: A tvasinā šanas  kārtība

94

Greibahas normālforma

Visas produkcijas ir formā:

kVVVaA 21

simbols netermināļi

0k

Page 95: A tvasinā šanas  kārtība

95

Piemēri:

bBbbBaAA

cABS

||

Greibahasnormālforma

aaSabSbS

Nav Greibahasnormālforma

Page 96: A tvasinā šanas  kārtība

96

aaSabSbS

Pāreja uz Greibahas normālformu:

bTaTaTSSTaTS

b

a

a

bb

Greibahasnormālforma

Page 97: A tvasinā šanas  kārtība

97

Teorēma:

Katrai bezkonteksta gramatikaeksistē ekvivalenta gramatikaGreibahas normālformā.

Page 98: A tvasinā šanas  kārtība

98

Novērojumi

• Greibahas normālformas ir ļoti labas analīzei

• Atrast Greibahas normālformupatvaļīgai bezkonteksta gramatikainav gluži triviāli