Tata Bahasa Beas Konteks By mei Dalam tataahasa eas konteks Ruas kiri dari aturan produksi terdiri dari ATU simol non terminal Ruas kanan dapat erupa string yang dientuk dari simol terminal dan non terminal Contoh a Kalimat-kalimat yang diangkitkan dari aturan produksi itu adalah,a,aa,aaa,..., a n n
Leftmost dan Rightmost Derivation uatu penguraian /penurunan dikatakan leftmost derivation ila setiap tahapan penurunan variael / non terminal terkiri yang diuraikan. Apaila setiap tahapan penurunan variael / non terminal paling kanan yang diuraikan diseut rightmost derivation Contoh 1 G=({A,B,}, {a,},,p} dengan aturan produksi P : AB A aaa B B Menspesifikasikan ahasa L(G) = {a 2n m n 0, m 0} Leftmost derivation untuk menghasilkan string aa AB aaab aab aab aa Righmost derivation untuk menghasilkan string aa AB AB aaab aaa aa
Contoh 2 G=({A,B,}, {a,},,p} dengan aturan produksi P : aab A B B A Leftmost derivation untuk menghasilkan string a aab abb aab abb ab a Righmost derivation untuk menghasilkan string aa aab aa ab aa ab a Pohon urai(pohon penurunan) Untuk menampilkan penguraian, dapat dilakukan dengan mementuk pohon urai (sayangnya, urutan penguraian tidak terlihat). Contoh pohon urai pada contoh seelumnya : a A B B A B
Parsing dan Keanggotaan Untuk menentukan apakah string w erada di L(G), dengan cara secara sistematis memangun semua kemungkinan penurunan, dan mencocokkan hasilnya apakah ada yang sama dengan string w. (diseut exhaustive search parsing) contoh menentukan apakah string a erada pada ahasa yang dientuk oleh grammar dengan aturan produksi a a Untuk penguraian pertama 1. 2. a 3. a 4. Penguraian nomor 3 dan 4 tidak perlu dilanjutkan. Penguraian 1 mementuk 1a. 1. a 1c. a 1d. Penguraian 2 mementuk 2a. a a 2. a aa 2c. a aa 2d. a a
Amiguitas pada Tataahasa dan Bahasa Tataahasa eas konteks G diseut amigu jika terdapat eerapa w L(G) yang mempunyai paling sedikit dua uah pohon penurunan a a a Contoh pada tataahasa dengan aturan produksi a string aa mempunyai 2 pohon penurunan : a PENYEDERHANAAN TATA BAHAA BEBA KONTEK Tujuan Melakukan pematasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi yang tidak erarti. Contoh 1: AB a A a Aturan produksi AB tidak erarti karena B tidak memiliki penurunan
Contoh 2 : A A B B C C D D a A Memiliki kelemahan terlalu panjang jalannya padahal erujung pada a, produksi D A juga menyeakan kerumitan. Cara Penyederhanaan: Penghilangan produksi useless ( tidak erguna ) Penghilangan produksi unit Penghilangan produksi ε
Penghilangan Produksi U seless Di sini produksi useless didefinisikan seagai : Produksi yang memuat symol variael yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya. Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simol awal, sehingga produksi itu redundan ( Contoh : aa Ad Bde A Ada B BBB a Maka imol variael A tidak memiliki penurunan yang menuju terminal, sehingga isa dihilangkan Konsekuensi no (1), aturan produksi Ad tidak memiliki penurunan Penyederhanaan menjadi: aa Bde B BBB a
Contoh : Aa B A a D B E C E a E a Penyederhanaannya menjadi: Aa B A a B Maka : Aturan produksi A D, simol variael D tidak memiliki penurunan. Aturan produksi C, Penurunan dari simol, dengan jalan manapun tidak akan pernah mencapai C imol variael E tidak memiliki aturan produksi yang menuju terminal Konsekuensi no (3) Aturan produksi B E, simol variael E tidak memiliki penurunan. maka produksi yang useless: A D C E a E a B E Contoh : aa c E B A dbe eec B ff C ae D h H asil penyederhanaan menjadi: aa A eec C ae Analisa : Aturan produksi ceb, A dbe dapat dihilangkan ( E tidak memiliki penurunan) Aturan produksi D h, redundan isa aturan produksi aa A eec B ff C ae Analisis lagi B ff juga redundan,
Contoh lain lagi : abd B cd A D ef A Ed F dc Hasil penyederhanaan: abd B cd D ef Analisa Aturan produksi A Ed, E tidak memiliki penurunan Aturan produksi F dc, redundan isa aturan produksi: abd B cd A D ef Analisa lagi B A, A tidak memiliki penurunan. Penghilangan Produksi U ni t Produksi dimana ruas kiri dan kanan aturan produksi hanya erupa satu simol variael, misalkan: A B, C D. Keeradaannya memuat tata ahasa memiliki kerumitan yang tak perlu. Penyederhanaan dilakukan dengan melakukan penggantian aturan produksi unit
Contoh: C C D C ef D dd ehingga aturan produksi setelah penyederhanaan: dd ef C dd C ef D dd Dilakukan penggantian erturutan mulai dari aturan produksi yang paling dekat menuju ke penurunan terminalterminal ( => diaca menjadi ): C D => C dd C => dd ef Contoh lain: A Aa A B B C B C D C a D Penggantian yang dilakukan : C D => C B C => B a, karena B sudah ada, maka cukup dituliskan B a A B => A a A => a ehingga aturan produksi setelah penyederhanaan: a Aa A a B a B C C a D
Contoh lagi: Ca D A C B c ddd C ea f C D E ABC E gh Penggantian yang dilakukan: D E menjadi D gh C C, kita hapus D menjadi gh ABC ehingga aturan produksi setelah penyederhanaan: Ca gh ABC A C B c ddd C ea f D gh ABC E gh Contoh: C C D C ef D dd ehingga aturan produksi setelah penyederhanaan: dd ef C dd C ef C dd Dilakukan penggantian erturutan mulai dari aturan produksi yang paling dekat menuju ke penurunan terminal-terminal ( => diaca menjadi ): C D => C dd C => dd ef
Contoh lain: A Aa A B B C B C D C a D ehingga aturan produksi setelah penyederhanaan: a Aa A a B a B C C a D Penggantian yang dilakukan : C D => C B C => B a, karena B sudah ada, maka cukup dituliskan B a A B => A a A => a Penghilangan Produksi ε Produksi ε adalah produksi dalam entuk ε atau isa dianggap seagai produksi kosong ( empty ). Penghilangan produksi ε dilakukan dengan melakukan penggantian produksi yang memuat variael yang isa menuju produksi ε, atau iasa diseut nullale Prinsip penggantiannya isa dilihat kasus erikut: cad A ε A nullale serta A ε satu-satunya produksi dari A, maka variael A isa ditiadakan, hasil penyederhanaan tata ahasa eas konteks menjadi: cd
cad A d ε Tetapi ila kasusnya: A nullale, tapi A ε ukan satusatunya produksi dari A, maka hasil penyederhanaan: cad cd A d Contoh lagi terdapat tata ahasa eas konteks: A Cd A d C ε V ariael yang nullale adalah variael C. Karena penurunan C ε merupakan penurunan satu-satunya dari C, maka kita ganti Cd menjadi d. Kemudian produksi C ε kita hapus. etelah penyederhanaan menjadi: A d A d
Contoh lain lagi: da Bd A c A ε B c Va riael yang nullale adalah variael A. A ε ukan penurunan satu-satunya dari A ( terdapat A c ), maka kita ganti da menjadi da d. A ε kita hapus. etelah penyederhanaan : da d Bd A c B c AaCD A CD AB B ε C d ε D ε Contoh tata ahasa eas konteks: V ariael yang nullale adalah B, C, D. Kemudian dari A CD, maka variael A juga nulale ( A ε ). Karena D hanya memilki penurunan D ε, maka kita sederhanakan dulu: AaCD => AaC A CD => A C D ε kita hapus elanjutnya kita lihat variael B dan C memiliki penurunan ε, meskipun ukan satusatunya penurunan, maka dilakukan penggantian: A AB => A AB A B AaC => AaC ac Aa a B ε dan C ε kita hapus etelah penyederhanaan: AaC ac Aa a A C AB A B B
1. AB A Aa B B a a. Turunkan dengan cara leftmost. Turunkan dengan cara righmost c. Buat pohon urainya 2. Hilangkan produksi useless a A C A a B aa C ac 3. Hilangkan produksi Unit ABaC BaC AaC Aa ac Aa Ba a A B C BC B C D D d 4. Hilangkan produksi a. ABaC A Bd B C D D BCa. AB A aa ab aca B A BB C D db BCB