triandanang.files.wordpress.com€¦ · web viewbahasa pengekspresian gramer. contoh : bahasa...

23
Penyederhanaan Tata Bahasa Bebas Konteks Tujuan Melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak perlu atau aturan produksi yang tidak berarti. Kelemahannya : aturan produksi AB menjadi tidak berarti karena B tidak memiliki penurunan. Bahasa Bebas Konteks Gramer bebas konteks Pushdown Automata Gramer Bahasa pengekspresian Gramer Contoh : Bahasa Inggris Sentence noun_phrase predicate noun_ phrase article noun predicate verb article a article the noun cat noun dog verb runs verb walks

Upload: hatu

Post on 28-May-2018

246 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Penyederhanaan Tata Bahasa Bebas KonteksTujuan

Melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak perlu atau aturan produksi yang tidak berarti.Kelemahannya : aturan produksi AB menjadi tidak berarti karena B tidak memiliki penurunan.

Bahasa Bebas Konteks

Gramer bebas konteks Pushdown Automata

GramerBahasa pengekspresian GramerContoh : Bahasa Inggris

Sentence noun_phrase predicate

noun_ phrase article noun

predicate verb

article aarticle the

noun catnoun dog

verb runsverb walks

Derivasi dari “the dog walks”:

Page 2: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

sentence noun_ phrase predicate noun_ phrase verb article noun verb the noun verb the dog verb the dog runs

Derivasi dari “a cat runs”: sentence noun_ phrase predicate

noun_ phrase verb article noun verb a noun verb a cat verb a cat runs

Bahasa dari gramer: L = { “a cat runs”,

“a cat walks”, “the cat runs”,“the cat walks”,“a dog runs”,“a dog walks”,“the dog runs”,“the dog walks” }

Notasi Aturan Produksi

noun catnoun dog

Variabel Terminal

Page 3: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Contoh :Gramer : S aSb

S Derivasi dari kalimat : ab

S aSb ab

S aSb S Apakah gramer berikut merupakan bahasaGramer :

S aSbS

Derivasi dari kalimat : aabbS aSb aaSbb aabb

S aSb S Derivasi lain :S aSb aaSbb aaaSbbb aaabbbS aSb aaSbb aaaSbbb aaaaSbbbb aaaabbbb

Bahasa pada gramerS aSbS

L = anbn:n≥0

Notasi lainG = (V,T,S,P)

GramerV : Himpunan variabelT : Himpunan simbol terminalS : Variabel awalP : Himpunan aturan produksi Variabel A x String dari variabel dan terminal

Sebuah bahasa L adalah bebas konteks jika dan hanya jika G gramer bebas konteks denganL = L(G)

Contoh :Gramer G :

S aSb G = ( V , T , S , P )S

V = S T = a,bP = s aSb, S

Notasi lainForm Sentensial : sebuah kalimat terisi dari variabel dan terminalContoh :

S aSb aaSbb aaaSbbb aaabbb

Page 4: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Form Sentensial kalimat

Penulisan : S aaabbbDari pada :

S aSb aaSbb aaaSbbb aaabbb*

Secara umum dapat ditulis : W1 Wn Jika : W1 W2 W3 ••• Wn

*Dengan akhir W W

Contoh :Gramer

S aSbS

Derivasi :*

S *

S ab*

S aabb*

S aaabbb

Contoh :Gramer G S Ab

A aAbA

Derivasi : S Ab aAbb aaAbbb aaaAbbbb aaaaAbbbbb aaaabbbbb*

S aaaabbbb*

S aaaaaabbbbbbb*

S anbnb

Bahasa pada GramerUntuk sebuah gramer G dimulai dengan huruf S

Page 5: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

L(G) = W: S W

String pada terminal

Contoh :Untuk gramar G : S Ab

A aAbA

L(G) = anbnb: n≥0*

Selama : S anbnb

Notasi yang tepatA aAb A aAb A

article a article a thearticle the

Contoh :Gramer Bebas Konteks :G S aSb

S Derivasi :

S aSb aaSbb aabbDerivasi lain :

S aSb aaSbb aaaSbbb aaabbbMaka :

L(G) = anbn : n ≥ 0Describes parenthesis : (((( )))) Contoh :Gramer Bebas Konteks :G S aSa

S bSbS

Derivasi :S aSa abSba abba

Derivasi lain :S aSa abSba abaSaba abaaba

Maka :L(G) = WWR : W a,b*

Contoh :Gramer Bebas Konteks :G S aSb

S SS

Page 6: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

S Derivasi :

S SS aSbS abS abDerivasi lain :

S SS aSbS abS abaSb ababMaka :

L(G) = w : na (w) = nb (w), dan na (v) ≥ nb (v) pada prefix lain vDescribes parenthesis : () ((( ))) (( ))

Dalam tatabahasa bebas konteks Ruas kiri dari aturan produksi terdiri dari satu simbol non terminalRuas kanan dapat berupa string yang dibentuk dari simbol terminal dan non terminal Contoh S aSb | Kalimat-kalimat yang dibangkitkan dari aturan produksi itu adalah ,ab,aabb,aaabbb,... , anbn

Derivasi order1. S AB2. A aaA3. A 4. B Bb5. B

Derivasi dari kiri1 2 3 4 5

S AB aaAB aaB aaBb aabDerivasi dari kanan

1 4 5 2 3S AB ABb Ab aaAb aab

Derivasi orderS aABA bBbB A |

Derivasi dari kiri :S aAB abBbB abAbB abbBbbB abbbbB abbbb

Derevasi dari kanan :S aAB aA abBb abAb abbBbb abbbb

Leftmost dan Rightmost Derivation Suatu penguraian /penurunan dikatakan leftmost derivation bila setiap tahapan penurunan variabel / non terminal terkiri yang diuraikan. Apabila setiap tahapan penurunan variabel / non terminal paling kanan yang diuraikan disebut rightmost derivation

Page 7: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Contoh 1G=({A,B,S}, {a,b},S,P} dengan aturan produksi P :

S AB A aaA | BBb |

Menspesifikasikan bahasaL(G) = {a2nbm | n≥0 , m≥0}

Leftmost derivation untuk menghasilkan string aab S AB aaAB aaB aaBb aab

Righmost derivation untuk menghasilkan string aabS AB ABb aaABb aaAb aab

Contoh 2 G=({A,B,S}, {a,b},S,P} dengan aturan produksi P :

S aAB A bBb B A |

Leftmost derivation untuk menghasilkan string abbbb S aAB abBbB abAbB abbBbbB abbbbB abbbb

Righmost derivation untuk menghasilkan string aab S aAB aA abBb abAb abbBbb abbbb

Pohon urai/Derivasi(pohon penurunan)Untuk menampilkan penguraian, dapat dilakukan dengan membentuk pohon urai

S AB A aaA | B Bb |

Page 8: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

S AB

S

A B

S AB aaAB

S

A B

a a A

S AB aaAB aaABb

S

A B

a a A B b

S AB aaAB aaABb aaBb

S

Page 9: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

A B

a a A B b

S AB aaAB aaABb aaBb aab

S

A B

a a A B b

Parsing dan Keanggotaan Untuk menentukan apakah string w berada di L(G), dengan cara secara sistematis membangun semua kemungkinan penurunan, dan mencocokkan hasilnya apakah ada yang sama dengan string w. (disebut exhaustive search parsing)

contoh

Page 10: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

menentukan apakah string ab berada pada bahasa yang dibentuk oleh grammar dengan aturan produksi S SS | aSb | bSa | Untuk penguraian pertama

1. S SS 2. S aSb 3. Sv bSa4. S

Penguraian nomor 3 dan 4 tidak perlu dilanjutkan.Penguraian 1 membentuk

1a. S SS SSS 1b. S SS aSbS 1c. S SS bSaS 1d. S SS S Penguraian 2 membentuk

2a. S aSb aSSb 2b. S aSb aaSbb 2c. S aSb abSab2d. S aSb ab

Parsial pohon DerivasiS AB A aaA | B Bb |

S AB

S

Page 11: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

A B

S AB aaAB

S

A B

a a A

tidak masalah derivasi yang akan dipakaikiri :S AB aaAB aaB aaBb aabKanan :S AB ABb Ab aaAb aab

S

A B

a a A B b

Ambiguitas pada Tatabahasa dan BahasaTatabahasa bebas konteks G disebut ambigu jika terdapat beberapa sting w L(G) yang mempunyai paling sedikit dua buah pohon penurunan.Ambigu tidak baik untuk bahasa pemrograman.

Contoh pada tatabahasa dengan aturan produksi S SS | aSb | string aabb mempunyai 2 pohon penurunan :

S S

Page 12: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

a S b S S

a S b a S b

a S b

Contoh :E E + E | E E | (E) | aa + a a

E E E + E a + E a + E * E a + a * E a + a * a

Derivasi Kiri

E + E

a E * E

a a

EE * EE + E * E a + E * Ea + a * Ea + a * a E

Derivasi kiri

E S E

E + E a

Page 13: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

a a

E E + E | E E | (E) | aa + a a

E Dua Pohon Derivasi E

E + E E * E

a E * E E + E a

a a a a

E E + E a + E a + E * E a + a * E a + a * a

E E * E E + E * E a + E * E a + a * E a + a * a

Bagaimana mengetahui tentang ambiguiti?a + a * a berikan a = 22 + 2 * 2 = 6 Hasil yang benar : 2 + 2 * 2 = 62 + 2 * 2 = 8 oleh karena itu ambiguiti tidak baik untuk

bahasa pemrograman

Membetulkan ambigius gramer :E E + E | E * E | (E) | a

Gramer non-ambiguous baru :G E E + T

E TT T * FT FF a

Non-ambiguous :untuk setiap string w L (G) mempunyai pohon derivasi yang unik

Page 14: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

E E + T T + T F + T a + T a + T * F a + F * F a + a * a

E

Pohon derivasi yang unik

E + T a + a * a

T T * F

F F a

a a

Tujuan Melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak berarti.

Contoh 1: S AB | a A a

Aturan produksi S AB tidak berarti karena B tidak memiliki penurunan

Contoh 2 : S A A B B C C D D a | A

Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan.

Cara PenyederhanaanPenghilangan produksi useless Penghilangan produksi unitPenghilangan produksi ε

Penghilangan Produksi Useless Di sini produksi useless didefinisikan sebagai : Produksi yang memuat symbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya.

Page 15: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan ( berlebih )

Contoh 1 : S aSa | Abd | Bde A Ada B BBB | a

Maka Simbol variabel A tidak memiliki penurunan yang menuju terminal, sehingga bisa dihilangkan Konsekuensi no (1), aturan produksi S Abd tidak memiliki penurunan Penyederhanaan menjadi:

S aSa | BdeB BBB | a

Contoh 2 : Sv Aa | B A ab | DB b | EC bbE a E a

Penyederhanaannya menjadi: S Aa | BA abB b

Contoh 3 : S

aAb | c E B

A dBE | eeC

B ff

C ae D h

Maka : Aturan produksi A D, simbol variabel D tidak memiliki penurunan. Aturan produksi C bb, Penurunan dari simbol S, dengan jalan manapun tidak akan pernah mencapai C Simbol variabel E tidak memiliki aturan produksi yang menuju terminal Konsekuensi no (3) Aturan produksi B E, simbol variabel E tidak memiliki penurunan.

maka produksi yang useless: A D C bb E a E a B E

Analisa Aturan produksi A Ed, E tidak memiliki penurunan Aturan produksi F dc, redundan Sisa aturan produksi: S aBD B cD | AbD ef Analisa lagi B Ab, A tidak memiliki penurunan.

Analisa : Aturan produksi S cEB, A dBE dapat dihilangkan ( E tidak memiliki penurunan) Aturan produksi D h, redundan Sisa aturan produksi S aAb A eeC B ff C ae Analisis lagi B ff juga redundan,

Page 16: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Hasil penyederhanaan menjadi: S aAb A eeC C ae

Contoh 4 : S aBD B cD | Ab D efA EdF dc

Hasil penyederhanaan: S aBDB cD D ef

Penghilangan Produksi Unit Produksi dimana ruas kiri dan kanan aturan produksi hanya berupa satu simbol variabel, misalkan: A B, C D.Keberadaannya membuat tata bahasa memiliki kerumitan yang tak perlu.Penyederhanaan dilakukan dengan melakukan penggantian aturan produksi unit.

Contoh 1:S SbS CC DC efD dd

Sehingga aturan produksi setelah penyederhanaan:

S SbS dd | efC ddC efD dd

Contoh 2 :S AS AaA BB CB bC DC abD b

Dilakukan penggantian berturutan mulai dari aturan produksi yang paling dekat menuju ke penurunan terminal- terminal (‘=>’ dibaca ‘menjadi’): C D => C dd S C => S dd | ef

Penggantian yang dilakukan : C D => C b B C => B b | ab, karena B b sudah ada, maka cukup dituliskan B abA B => A ab | b S A => ab | b Sehingga aturan produksi setelah penyederhanaan: S ab | b S Aa A ab | b B ab B b C bC abD b

Page 17: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Contoh 3 : S Cba | DA bbCB Sc | dddC eA | f | CD E | SABCE gh

Contoh 4 :S SbS CC DC efD dd

Sehingga aturan produksi setelah penyederhanaan:S SbS dd | efC ddC efC dd

Contoh 5 :S AS AaA BB CB bC DC abD b

Sehingga aturan produksi setelahpenyederhanaan: S ab | b

Penggantian yang dilakukan: D E menjadi D ghC C , kita hapus S D menjadi S gh | SABC

Sehingga aturan produksi setelah penyederhanaan:S Cba | gh | SABCA bbC B Sc | ddd C eA | f D gh | SABC E gh

Dilakukan penggantian berturutan mulai dari aturan produksi yang paling dekat menuju ke penurunan terminal-terminal (‘=>’ dibaca ‘menjadi’):C D => C ddS C => S dd | ef

Penggantian yang dilakukan :C D => C b B C => B b | ab, karena B b sudah ada, maka cukup dituliskan B ab A B => A ab | bS A => ab | b

Page 18: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

S Aa A ab | b B ab B b C b C ab D b

Penghilangan Produksi ε Produksi ε adalah produksi dalam bentuk ε atau bisa dianggap sebagai produksi kosong ( empty ). Penghilangan produksi ε dilakukan dengan melakukan penggantian produksi yang memuat variabel yang bisa menuju produksi ε, atau biasa disebut nullable.Prinsip penggantiannya bisa dilihat kasus berikut:

S bcAdA ε

A nullable serta A ε satu-satunya produksi dari A, maka variabel A bisa ditiadakan, hasil penyederhanaan tata bahasa bebas konteks menjadi:

S bcd Tetapi bila kasusnya:

S bcAdA bd | ε

A nullable , tapi A ε bukan satu- satunya produksi dari A, maka hasil penyederhanaan: S bcAd | bcdA bd

Contoh 1 :terdapat tata bahasa bebas konteks:

S Ab | Cd A d C ε

V ariabel yang nullalbe adalah variabel C. Karena penurunan C ε merupakan penurunan satu-satunya dari C, maka kita ganti S Cd menjadi S d. Kemudian produksi C ε kita hapus. Setelah penyederhanaan menjadi:

S Ab | dA d

Contoh 2 : S dA | BdA bcA εB c

Va riabel yang nullable adalah variabel A. A ε bukan penurunan satu-satunya dari A ( terdapat A bc ), maka kita ganti S dA menjadi S dA | d. A ε kita hapus. Setelah penyederhanaan :

S dA | d | BdA bc B c

Page 19: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

Contoh tata bahasa bebas konteks: S AaCDA CD | ABB b | εC d | εD ε

Variabel yang nullable adalah B, C, D. Kemudian dari A CD, maka variabel A juga nullable ( A ε ). Karena D hanya memilki penurunan D ε, maka kita sederhanakan dulu:

S AaCD => S AaCA CD => A CD ε kita hapus

Selanjutnya kita lihat variabel B dan C memiliki penurunan ε, meskipun bukan satu-satunya penurunan, maka dilakukan penggantian:

A AB => A AB | A | BS AaC => S AaC | aC | Aa | aB ε dan C ε kita hapus

Setelah penyederhanaan:S AaC | aC | Aa | aA C | AB | A | BB b

1. S AB A Aa|bBB a|Sba. Turunkan dengan cara leftmostb. Turunkan dengan cara righmostc. Buat pohon urainya

2. Hilangkan produksi useless S aS|A|CA aB aaC aCb

3. Hilangkan produksi UnitS ABaC|BaC|AaC|Aba|aC|Aa|Ba|aA B|C|BC

Page 20: triandanang.files.wordpress.com€¦ · Web viewBahasa pengekspresian Gramer. Contoh : Bahasa Inggris. Sentence noun_phrase predicate . noun_ phrase article noun. predicate verb

B bC DD d

4. Hilangkan produksi ε a. S ABaC

A BdB b| εC D| εD BCa

b. S AB A aA|abB|aCaB bA|BB| εC εD dB|BCB

http://tbouad.files.wordpress.com/2011/03/pertemuan-10-bahasa-bebas-konteks-compati.pdfhttp://vreffendi.files.wordpress.com/2010/10/tata-bahasa-bebas-konteks.pdfhttp://bahanajarku.files.wordpress.com/2012/04/penyederhanaan-tata-bahasa-bebas-konteks1.pptx