46
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva 1 od 46 Uvod u teoriju računarstva http://www.zemris.fer.hr/ predmeti / utr / Zadaci za vježbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu

Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

  • Upload
    arnon

  • View
    73

  • Download
    1

Embed Size (px)

DESCRIPTION

Uvod u teoriju računarstva http://www.zemris.fer.hr/ predmeti / utr /. Zadaci za vje žbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu. Zadatak br. 18. Zadanu gramatiku pretvoriti u Chomskyev oblik. Chomskyev oblik produkcija: A  BC i A  d - PowerPoint PPT Presentation

Citation preview

Page 1: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva1 od 46

Uvod u teoriju računarstva

http://www.zemris.fer.hr/predmeti/utr/

Zadaci za vježbuPriprema za međuispit

Fakultet elektrotehnike i računarstva

Sveučilište u Zagrebu

Page 2: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva2 od 46

• Zadanu gramatiku pretvoriti u Chomskyev oblik.

Zadatak br. 18

S0S1 A1B0 B1BA CB0

S0SBS ASB BSA CA

S1C0 A0 B1 C

Chomskyev oblik produkcija: ABC i Ad

Postupak pretvorbe u Chomskyev oblik:a) Izbacivanje jediničnih i produkcija

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od

jednog znaka na desnoj strani zamijene se nezavršnim znakovima

koji su zamjene za te završne znakove

c) Produkcije koje s desne strane imaju više od dva znaka razbijaju se

u podprodukcije

Page 3: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva3 od 46

a) Izbacivanje jediničnih i produkcija.

Zadatak br. 18

S0S1 A1B0 B1BA CB0

S0SBS ASB BSA CA

S1C0 A0 B1 C

S0S1 A1B0 B1BA CB0

S0SBS ASB BSA C1B0

S1C0 A0 B1 CSB

S10 C0

Izbacuju se produkcije: CA i C

Page 4: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva4 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

J1

N0

S10

CSBB1A0S1C0

C1B0BSAASBS0SBS

CB0B1BAA1B0S0S1

C0

Page 5: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva5 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0S1C0

C1B0BSAASBS0SBS

CB0B1BAA1B0S0S1

J1

N0

C0

Page 6: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva6 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0S1C0

C1B0BSAASBS0SBS

CB0B1BAA1B0S0S1

J1

N0

C0

Page 7: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva7 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0S1C0

C1B0BSAASBS0SBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 8: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva8 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0S1C0

C1B0BSAASBS0SBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 9: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva9 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0S1C0

C1B0BSAASBSNSBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 10: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva10 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0S1C0

C1B0BSAASBSNSBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 11: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva11 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 12: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva12 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

S10

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 13: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva13 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 14: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva14 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAA1B0SNSJ

J1

N0

C0

Page 15: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva15 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAAJBNSNSJ

J1

N0

C0

Page 16: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva16 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAAJBNSNSJ

J1

N0

C0

Page 17: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva17 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAAJBNSNSJ

J1

N0

C0

Page 18: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva18 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0B1BAAJBNSNSJ

J1

N0

C0

Page 19: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva19 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0BJBAAJBNSNSJ

J1

N0

C0

Page 20: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva20 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0BJBAAJBNSNSJ

J1

N0

C0

Page 21: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva21 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0BJBAAJBNSNSJ

J1

N0

C0

Page 22: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva22 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CB0BJBAAJBNSNSJ

J1

N0

C0

Page 23: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva23 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 24: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva24 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

C1B0BSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 25: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva25 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 26: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva26 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 27: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva27 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 28: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva28 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 29: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva29 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 30: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva30 od 46

b) Završni znakovi koji se nalaze u produkcijama koje imaju više od jednog znaka na desnoj strani zamijene se nezavršnim znakovima koji su zamjene za te završne znakove

Zadatak br. 18

Završni znak “0” zamjenjuje se nezavršnim znakom N.

Završni znak “1” zamjenjuje se nezavršnim znakom J.

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

C0

Page 31: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva31 od 46

c) Produkcije koje s desne strane imaju više od dva znaka razbijaju se u podprodukcije

Zadatak br. 18

SJN

CSBB1A0SJCN

CJBNBSAASBSNSBS

CBNBJBAAJBNSNSJ

J1

N0

SND1

D1SJ

SND2

D2SD3

D3BS

SJD4

D4CN

AJD5

D5BN

BJD6

D6BA

CJD5

C0

Page 32: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva32 od 46

• Pokazati nejednoznačnost zadane gramatike.

Zadatak br. 19

1) SaSbS2) SbSaS3) S

Nejednoznačnost se pokazuje generiranjem niza abab na dva ili

više načina zamjenom krajne lijevog (desnog) nezavršnog znaka

Prvi način generiranja niza:

Drugi način generiranja niza:

S 1 aSbS 3 abS 1 abaSbS 3 ababS 3 abab

S 1 aSbS 2 abSaSbS 3 abaSbS 3 ababS 3 abab

Page 33: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva33 od 46

0a4____ b

Zadatak br. 20• Za zadanu gramatiku napisan je LR

parser. Pomoću LR parsera parsirati ulazni niz aabb.

a b A B

0 s4 s5 r2 1 2

1 prihvati

2 s4 s5 r2 3 2

3 r1

4 s4 s5 6

5 r4 r4 r4

6 r3 r3

• Konfiguracija LR parsera prikazuje se stanjem na stogu i nepročitanim dijelom ulaznog niza

0a4 abb

0a4a4b5 b

bb0a4a4

0a4B6 b

0a4a4__ b

0B2b5 b0B2

0B2B2A3 0B2B2

0A1 0B2A3

STOG ULAZ

prihvati

0 aabb

• Parser je LR jer se niz čita s lijeva na desno, a generiranje niza se vrši zamjenom krajnje desnog nezavršnog znaka:

• A→BA→BBA→BB→Bb→aBb→aaBb→aabb

ABA (1)A (2) Bb (4)

BaB (3)

0a4a4B6 b

Page 34: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva34 od 46

• Konstruirati gramatiku koja generira nizove oblika aibjckdjei pri čemu su i, j, k 1.

Zadatak br. 21

• Simetrični nizovi• Tip gramatike = ?• Kontekstno-neovisna gramatika• Produkcije gramatike istovremeno generiraju

• a i e• b i d

S aAe AaAe BbBd CcC

AbBd BcC C

a i b j c k d j e i

Page 35: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva35 od 46

• M=({q0,q1},{0,1},{P,N,J},,q0,P,)

• q0 pamti ulazne znakove

• N i J kodiraju 0 i 1

• q1 skida znakove sa stoga

• Potisni automat prihvaća praznim stogom• Potisni automat prihvaća prazni niz• Nije deterministički!

• Nederministički prijelaz se primjenjuje kada se uzastopce ponovi isti ulazni znak

Zadatak br. 22

• Konstruirati potisni automat koji prihvaća jezik

L={wwR | w(0+1)*}.

(q0,0,P)=(q0,NP) (q0,0,N)={(q0,NN),(q1,)} (q1,0,N)=(q1,)

(q0,1,J)={(q0,JJ),(q1,)}

(q0,1,N)=(q0,JN)

(q0,0,J)=(q0,NJ)

(q1,1,J)=(q1,)

(q1,,P)=(q1,)

(q0,1,P)=(q0,JP)

(q0,,P)=(q0,)

Page 36: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva36 od 46

Nastavak zad. 22 (q0, 001100, P)

(q0, 01100, NP) (q1, 001100, )

(q0, 1100, NNP) (q1, 1100, P)

(q1, 1100, ) (q0, 100, JNNP)

(q1, 00, NNP)

(q1, 0, NP)

(q1, , P)

(q1, , )

Prihvati niz

(q0, 00, JJNNP)

(q0, 0, NJJNNP)

(q0, , NNJJNNP) (q0, , JJNNP)

(q0,0,P)=(q0,NP)

(q0,0,N)={(q0,NN),(q1,)}

(q1,0,N)=(q1,)

(q0,1,J)={(q0,JJ),(q1,)}

(q0,1,N)=(q0,JN)

(q0,0,J)=(q0,NJ)

(q1,1,J)=(q1,)

(q1,,P)=(q1,)

(q0,1,P)=(q0,JP)

(q0,,P)=(q0,)

(1)

(2)

(5)

(6)

(7)

(8)

(9)

(10)

(3)

(4)

(1) (10)

(5)

(3) (9)

(6)

(4)

(5)

(7)

(7)

(9)

Page 37: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva37 od 46

• Iz potisnog automata M1 koji nizove prihvaća prihvatljivim stanjem konstruirati potisni automat M2 koji nizove prihvaća praznim stogom.

Zadatak br. 23

(q0,0,K)=(q0,NK) (q0,0,N)=(q0,NN) (q0,0,J)=(q0,)

(q0,1,K)=(q0,JK) (q0,1,N)=(q0,) (q0,1,J)=(q0,JJ)

(q0,2,K)=(q0,K) (q0,2,N)=(q0,N) (q0,2,J)=(q0,J)

(q0,,K)=(q1,K)

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )

Postupak konstrukcije PA M2 koji prihvaća praznim stogom:

a) PA M2 simulira rad PA M1

b) Ako PA M1 uđe u prihvatljivo stanje, PA M2 isprazni stog

c) Ako PA M1 isprazni stog, a ne uđe u prihvatljivo stanje,

PA M2 ne smije isprazniti stog

Page 38: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva38 od 46

Zadatak br. 23

Postupak konstrukcije PA M2 koji prihvaća praznim stogom:

a) PA M2 simulira rad PA M1

’(q0,0,K)=(q0,NK) ’(q0,0,N)=(q0,NN) ’(q0,0,J)=(q0,)

’(q0,1,K)=(q0,JK) ’(q0,1,N)=(q0,) ’(q0,1,J)=(q0,JJ)

’(q0,2,K)=(q0,K) ’(q0,2,N)=(q0,N) ’(q0,2,J)=(q0,J)

’(q0,,K)=(q1,K)

Svi prijelazi PA M1 dodaju se u skup prijelaza PA M2

(q0,0,K)=(q0,NK) (q0,0,N)=(q0,NN) (q0,0,J)=(q0,)

(q0,1,K)=(q0,JK) (q0,1,N)=(q0,) (q0,1,J)=(q0,JJ)

(q0,2,K)=(q0,K) (q0,2,N)=(q0,N) (q0,2,J)=(q0,J)

(q0,,K)=(q1,K)

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )

Page 39: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva39 od 46

Zadatak br. 23

Postupak konstrukcije PA M2 koji prihvaća praznim stogom:

b) Ako PA M1 uđe u prihvatljivo stanje, PA M2 isprazni stog

Skup stanja PA M2 proširuje se stanjem qE u kojem PA M2 prazni stog

bez čitanja ulaznih znakova

PA M2 prelazi u stanje qE bez čitanja ulaznih znakova samo ako PA M1

uđe u prihvatljivo stanje

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )

’(qE,,K)=(qE,)’(q1,,K)=(qE,)

’(qE,,J)=(qE,)’(q1,,J)=(qE,)

’(qE,,N)=(qE,)’(q1,,N)=(qE,)

Page 40: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva40 od 46

Zadatak br. 23

Postupak konstrukcije PA M2 koji prihvaća praznim stogom:

c) Ako PA M1 isprazni stog, a ne uđe u prihvatljivo stanje,

PA M2 ne smije isprazniti stog

’(qP,,Z)=(q0,KZ)

Skup znakova stoga PA M2 proširuje se znakom Z kojeg PA M1

ne može skinuti sa stoga

Znak Z je početni znak stoga za PA M2

Skup stanja PA M2 proširuje se stanjem qP koje omogućuje

prelazak PA M2 u početnu konfiguraciju PA M1

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} )

M2 = ( {qP,q0,q1,qE}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, )

Page 41: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva41 od 46

Zadatak br. 23

PA M2 koji prihvaća praznim stogom:

’(q0,0,K)=(q0,NK) ’(q0,0,N)=(q0,NN) ’(q0,0,J)=(q0,)

’(q0,1,K)=(q0,JK) ’(q0,1,N)=(q0,) ’(q0,1,J)=(q0,JJ)

’(q0,2,K)=(q0,K) ’(q0,2,N)=(q0,N) ’(q0,2,J)=(q0,J)

’(q0,,K)=(q1,K)

’(qP,,Z)=(q0,KZ)

’(qE,,K)=(qE,)’(q1,,K)=(qE,)

’(qE,,J)=(qE,)’(q1,,J)=(qE,)

’(qE,,N)=(qE,)’(q1,,N)=(qE,)

’(qE,,Z)=(qE,)’(q1,,Z)=(qE,)

M2 = ( {qP,q0,q1,qE}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, )

Page 42: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva42 od 46

• Iz potisnog automata M1 koji nizove prihvaća praznim stogom konstruirati potisni automat M2 koji nizove prihvaća prihvatljivim stanjem.

Zadatak br. 24

(q0,0,K)=(q0,NK) (q0,0,J)=(q0,NJ) (q0,0,N)=(q0,NN) (q1,0,N)=(q1,)

(q0,1,K)=(q0,JK) (q0,1,J)=(q0,JJ) (q0,1,N)=(q0,JN) (q1,1,J)=(q1,)

(q0,2,K)=(q1,) (q0,2,J)=(q1,J) (q0,2,N)=(q1,N) (q1,,K)=(q1,)

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )

Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:

a) PA M2 simulira rad PA M1

b) Ako PA M1 isprazni stog, PA M2 ulazi u prihvatljivo stanje

Page 43: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva43 od 46

Zadatak br. 24

Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:

a) PA M2 simulira rad PA M1

Svi prijelazi PA M1 dodaju se u skup prijelaza PA M2

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )

(q0,0,K)=(q0,NK) (q0,0,J)=(q0,NJ) (q0,0,N)=(q0,NN) (q1,0,N)=(q1,)

(q0,1,K)=(q0,JK) (q0,1,J)=(q0,JJ) (q0,1,N)=(q0,JN) (q1,1,J)=(q1,)

(q0,2,K)=(q1,) (q0,2,J)=(q1,J) (q0,2,N)=(q1,N) (q1,,K)=(q1,)

’(q0,0,K)=(q0,NK) ’(q0,0,J)=(q0,NJ) ’(q0,0,N)=(q0,NN) ’(q1,0,N)=(q1,)

’(q0,1,K)=(q0,JK) ’(q0,1,J)=(q0,JJ) ’(q0,1,N)=(q0,JN) ’(q1,1,J)=(q1,)

’(q0,2,K)=(q1,) ’(q0,2,J)=(q1,J) ’(q0,2,N)=(q1,N) ’(q1,,K)=(q1,)

Page 44: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva44 od 46

Zadatak br. 24

Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:

b) Ako PA M1 isprazni stog, PA M2 ulazi u prihvatljivo stanje

Skup stanja PA M2 proširuje se prihvatljivim stanjem qF u koje PA M2 ulazi

bez čitanja ulaznih znakova samo ako PA M1 isprazni stog

Skup znakova stoga PA M2 proširuje se znakom Z koji je početni znak stoga

Ako se na vrhu stoga PA M2 nalazi znak Z, to znači da je PA M1

ispraznio stog

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )

’(q1,,Z)=(qF,Z)

’(q0,,Z)=(qF,Z)

Page 45: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva45 od 46

Zadatak br. 24

Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem:

b) Ako PA M1 isprazni stog, PA M2 ulazi u prihvatljivo stanje

Skup stanja PA M2 proširuje se stanjem qP koje omogućuje prelazak PA M2

u početnu konfiguraciju PA M1

’(qP,,Z)=(q0,KZ)

M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, )

M2 = ( {qP,q0,q1,qF}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, {qF} )

Page 46: Uvod u teoriju računarstva zemris.fer.hr/ predmeti / utr

Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, D. Skrobo, M. Popović: Uvod u teoriju računarstva46 od 46

Zadatak br. 24

PA M2 koji prihvaća prihvatljivim stanjem:

’(qP,,Z)=(q0,KZ)

M2 = ( {qP,q0,q1,qF}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, {qF} )

’(q0,0,K)=(q0,NK) ’(q0,0,J)=(q0,NJ) ’(q0,0,N)=(q0,NN) ’(q1,0,N)=(q1,)

’(q0,1,K)=(q0,JK) ’(q0,1,J)=(q0,JJ) ’(q0,1,N)=(q0,JN) ’(q1,1,J)=(q1,)

’(q0,2,K)=(q1,) ’(q0,2,J)=(q1,J) ’(q0,2,N)=(q1,N) ’(q1,,K)=(q1,)

’(q1,,Z)=(qF,Z)

’(q0,,Z)=(qF,Z)