1 / 46

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

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

arnon
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uvod u teoriju računarstvahttp://www.zemris.fer.hr/predmeti/utr/ Zadaci za vježbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu

  2. Zadatak br. 18 • Zadanu gramatiku pretvoriti u Chomskyev oblik. • Chomskyev oblik produkcija: ABC i Ad • Postupak pretvorbe u Chomskyev oblik: • Izbacivanje jediničnih i  produkcija • 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 • Produkcije koje s desne strane imaju više od dva znaka razbijaju se u podprodukcije

  3. Zadatak br. 18 • Izbacivanje jediničnih i  produkcija. Izbacuju se produkcije: CA i C

  4. Zadatak br. 18 • 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 S0S1 A1B0 B1BA CB0 N0 S0SBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  5. Zadatak br. 18 • 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 S0S1 A1B0 B1BA CB0 N0 S0SBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  6. Zadatak br. 18 • 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 S0S1 A1B0 B1BA CB0 N0 S0SBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  7. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 S0SBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  8. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 S0SBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  9. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  10. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 S1C0 A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  11. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  12. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB S10 C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  13. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  14. Zadatak br. 18 • 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 SNSJ A1B0 B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  15. Zadatak br. 18 • 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 SNSJ AJBN B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  16. Zadatak br. 18 • 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 SNSJ AJBN B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  17. Zadatak br. 18 • 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 SNSJ AJBN B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  18. Zadatak br. 18 • 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 SNSJ AJBN B1BA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  19. Zadatak br. 18 • 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 SNSJ AJBN BJBA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  20. Zadatak br. 18 • 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 SNSJ AJBN BJBA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  21. Zadatak br. 18 • 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 SNSJ AJBN BJBA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  22. Zadatak br. 18 • 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 SNSJ AJBN BJBA CB0 N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  23. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  24. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA C1B0 J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  25. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  26. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  27. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  28. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  29. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  30. Zadatak br. 18 • 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 SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB SJN C0 Završni znak “0” zamjenjuje se nezavršnim znakom N. Završni znak “1” zamjenjuje se nezavršnim znakom J.

  31. Zadatak br. 18 • Produkcije koje s desne strane imaju više od dva znaka razbijaju se u podprodukcije SNSJ AJBN BJBA CBN N0 SNSBS ASB BSA CJBN J1 SJCN A0 B1 CSB C0 SJN SND1 AJD5 BJD6 CJD5 D1SJ D5BN D6BA SND2 D2SD3 D3BS SJD4 D4CN

  32. 1 2 1 3 3 1 3 3 3 3           Zadatak br. 19 • Pokazati nejednoznačnost zadane gramatike. • SaSbS • SbSaS • 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: S aSbS abS abaSbS abab ababS Drugi način generiranja niza: S aSbS abSaSbS abaSbS ababS abab

  33. STOG ULAZ 0 aabb 0a4 abb 0a4a4 bb 0a4a4b5 b 0a4____ 0a4a4B6 0a4a4__ b b b 0a4B6 b 0B2 b 0B2b5  0B2B2  0B2B2A3  0B2A3  0A1  Zadatak br. 20 • Za zadanu gramatiku napisan je LR parser. Pomoću LR parsera parsirati ulazni niz aabb. ABA (1) BaB (3) A (2) Bb (4) • Konfiguracija LR parsera prikazuje se stanjem na stogu i nepročitanim dijelom ulaznog niza • Parser je LR jer se niz čita slijeva na desno, a generiranje niza se vrši zamjenom krajnje desnog nezavršnog znaka: • A→BA→BBA→BB→Bb→aBb→aaBb→aabb prihvati

  34. Zadatak br. 21 • Konstruirati gramatiku koja generira nizove oblika aibjckdjei pri čemu su i,j,k 1. a ibjckdjei • Simetrični nizovi • Tip gramatike = ? • Kontekstno-neovisna gramatika • Produkcije gramatike istovremeno generiraju • a i e • b i d S aAe AaAe BbBd CcC AbBd BcC C

  35. Zadatak br. 22 • Konstruirati potisni automat koji prihvaća jezik L={wwR | w(0+1)*}. • 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 (q0,0,N)={(q0,NN),(q1,)} (q1,0,N)=(q1,) (q0,0,P)=(q0,NP) (q0,1,P)=(q0,JP) (q0,1,J)={(q0,JJ),(q1,)} (q1,1,J)=(q1,) (q0,1,N)=(q0,JN) (q1,,P)=(q1,) (q0,0,J)=(q0,NJ) (q0,,P)=(q0,)

  36. (q1, 00, NNP) (q0, 00, JJNNP) (q0, 0, NJJNNP) (q1, 0, NP) (q0, e, NNJJNNP) (q0, e, JJNNP) (q1, e, P) Prihvati niz Nastavak zad. 22 (q0, 001100, P) (10) (1) (1) (q0,0,P)=(q0,NP) (q1, 001100, e) (2) (q0, 01100, NP) (q0,1,P)=(q0,JP) (5) (3) (q0,1,N)=(q0,JN) (q1, 1100, P) (q0, 1100, NNP) (4) (q0,0,J)=(q0,NJ) (9) (3) (5) (q0,0,N)={(q0,NN),(q1,)} (q1, 1100, e) (q0, 100, JNNP) (6) (q0,1,J)={(q0,JJ),(q1,)} (6) (7) (q1,0,N)=(q1,) (7) (4) (8) (q1,1,J)=(q1,) (9) (q1,,P)=(q1,) (7) (5) (q0,,P)=(q0,) (10) (9) (q1, e, e)

  37. Zadatak br. 23 • Iz potisnog automata M1 koji nizove prihvaća prihvatljivim stanjem konstruirati potisni automat M2 koji nizove prihvaća praznim stogom. M1 = ( {q0,q1}, {0,1,2}, {N,J,K}, q0, , K, {q1} ) • Postupak konstrukcije PAM2 koji prihvaća praznim stogom: • PA M2 simulira rad PA M1 • Ako PA M1 uđe u prihvatljivo stanje, PA M2 isprazni stog • Ako PA M1 isprazni stog, a ne uđe u prihvatljivo stanje, • PA M2 ne smije isprazniti stog

  38. Zadatak br. 23 • Postupak konstrukcije PA M2 koji prihvaća praznim stogom: • 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, {q1} )

  39. Zadatak br. 23 • Postupak konstrukcije PA M2 koji prihvaća praznim stogom: • 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} ) ’(q1,,N)=(qE,) ’(qE,,N)=(qE,) ’(q1,,J)=(qE,) ’(qE,,J)=(qE,) ’(q1,,K)=(qE,) ’(qE,,K)=(qE,)

  40. Zadatak br. 23 • Postupak konstrukcije PA M2 koji prihvaća praznim stogom: • Ako PA M1 isprazni stog, a ne uđe u prihvatljivo stanje, • PA M2 ne smije isprazniti stog 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 M2proširuje se stanjem qPkoje 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,  )

  41. ’(q1,,N)=(qE,) ’(qE,,N)=(qE,) ’(q1,,J)=(qE,) ’(qE,,J)=(qE,) ’(q1,,K)=(qE,) ’(qE,,K)=(qE,) Zadatak br. 23 PAM2 koji prihvaća praznim stogom: M2 = ( {qP,q0,q1,qE}, {0,1,2}, {N,J,K,Z}, qP, ’, Z,  ) ’(q1,,Z)=(qE,) ’(qE,,Z)=(qE,)

  42. Zadatak br. 24 • Iz potisnog automata M1 koji nizove prihvaća praznim stogom konstruirati potisni automat M2 koji nizove prihvaća prihvatljivim stanjem. M1=({q0,q1},{0,1,2},{N,J,K},q0,,K,) • Postupak konstrukcije PAM2 koji prihvaća prihvatljivim stanjem: • PA M2 simulira rad PA M1 • Ako PA M1isprazni stog, PA M2ulazi u prihvatljivo stanje

  43. Zadatak br. 24 • Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem: • 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,)

  44. Zadatak br. 24 • Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem: • Ako PA M1isprazni stog, PA M2ulazi u prihvatljivo stanje Skup stanja PA M2 proširuje se prihvatljivim stanjem qF u koje PA M2ulazi 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,) ’(q0,,Z)=(qF,Z) ’(q1,,Z)=(qF,Z)

  45. Zadatak br. 24 • Postupak konstrukcije PA M2 koji prihvaća prihvatljivim stanjem: • Ako PA M1isprazni stog, PA M2ulazi u prihvatljivo stanje 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,  ) M2 = ( {qP,q0,q1,qF}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, {qF} )

  46. ’(q0,,Z)=(qF,Z) ’(q1,,Z)=(qF,Z) Zadatak br. 24 PAM2 koji prihvaća prihvatljivim stanjem: M2 = ( {qP,q0,q1,qF}, {0,1,2}, {N,J,K,Z}, qP, ’, Z, {qF} )

More Related