Penurunan (Derivation) [2] Penurunan (Derivation) Pertemuan : 5 Dosen Pembina : Danang Junaedi IF-UTM 1 Berfungsi untuk menggambarkan atau mengetahui bagaimana memperoleh suatu string dari dari suatu tata bahasa dengan cara menurunkan simbol-simbol variabel menjadi simbol-simbol terminal. Proses penurunan dilakukan dengan cara : Leftmost derivation : simbol variabel paling kiri ang diturunkan terlebih dahulu Rightmost derivation : simbol variabel paling kanan ang diturunkan terlebih dahulu Jenis Penurunan Derivation string / Penurunan tring : dimulai dengan simbol awal dan menggunakan tanda ang menunjukan hasil penurunanna. Derivation tree / Pohon Penurunan, disebut juga derivation (parse) tree : root dari pohon penurunan adalah simbol awal, sedangkan node (daun) dari pohon penurunan adalah simbol-simbol non terminal atau terminal dari tata bahasa tersebut atau kemungkinan simbolε IF-UTM 2 Parse Tree [1] Contoh Penurunan [1] Formall, let G = (, T, P, ) be a CFG, a parse tree for G must be such that: ver verte has a label from T {ε}. The root is labeled. The label of an internal verte is in. If a verte is labeled ε, it must be a leaf and has no sibling. If a verte is labeled and its children are labeled X 1, X 2,..., X k from left to right, then X 1 X 2 X 3 is a production in P. Misalkan diketahui sebuah contet free grammar G 3 dengan aturan produksi sebagai berikut: - () Bagaimana cara menurunkan string (-)? IF-UTM 3 IF-UTM 4 IF-UTM 1
Contoh Penurunan (contd) Kita bisa membuat pohon penurunan sebagai berikut : ( ) - tring (-) diperoleh dengan cara membaca node daun) dari cabang paling bawah kiri ke kanan. CFG G 3 : - () Derivation tring: () ( - ) ( - ) ( - ) ( - ) ( - ) IF-UTM 5 Contoh Penurunan (contd) Leftmost Derivation () ( - ) ( - ) ( - ) ( - ) ( - ) ( ) - Rightmost derivation () ( - ) ( - ) ( - ) ( - ) ( - ) ( - ) ( - ) IF-UTM 6 ( ) - mbiguit [1] ach parse tree has one unique leftmost derivation and one unique rightmost derivation. grammar is ambiguous if some strings in it have more than one parse trees, i.e., it has more than one leftmost derivations (or more than one rightmost derivations). Consider the following grammar G: a b ab string generated b this grammar can have more than one parse trees. Consider the string abb: a b b IF-UTM 7 a b b mbiguit [1] s another eample, consider the following grammar: * () There are 2 leftmost derivations for : IF-UTM 8 IF-UTM 2
mbiguit [1] tudi Kasus [1] Note that a CFL L can be generated b several different grammars, e.g., the language L={a n b m n > m > 0) can be generated b both G 1 and G 2 : G 1 : a b a b a a G 2 : B a a B abb ab CFL L is said to be inherentl ambiguous if all its grammars are ambiguous. If an one of them is unambiguous, L is unambiguous. 1. Consider the grammar of an if-statement: <if> if <cond> then <stat> <if> if <cond> then <stat> else <stat> <cond> P Q <stat> <if> R Consider the following if-statement: if P then if Q then R else This grammar is ambiguous since the above statement can have two parse trees. What are the? 2. Consider the grammar: ab b a a b B b b abb Generate 4 strings from this grammar. Do ou know what language does this CFG represent? IF-UTM 9 IF-UTM 10 Penederhanaan [5] Penederhanaan [5] (contd) Tujuan : Melakukan pembatasan sehingga tidak menghasilkan pohon penurunan ang memiliki kerumitan ang tidak perlu atau aturan produksi ang tidak berarti. : B a a Kelemahan CFG di atas, aturan produksi B tidak berarti karena B tidak memiliki penurunan. Untuk CFG berikut : B B C C D D a Memiliki kelemahan terlalu panjang jalanna padahal berujung pada a, produksi D juga menebabkan kerumitan. uatu CFG dapat disederhanakan dengan melakukan : 1. Penghilangan produksi ε 2. Penghilangan produksi unit 3. Penghilangan produksi useless (tidak berguna) IF-UTM 11 IF-UTM 12 IF-UTM 3
Penghilangan Produksiε [5] Penghilangan Produksiε [5] (contd) Produksiεadalah produksi dalam bentuk α ε tau bisa dianggap sebagai produksi kosong (empt). Penghilangan produksiεdilakukan dengan melakukan penggantian produksi ang memuat variabel ang bisa menuju produksiε, atau biasa disebut nullable. bcd ε nullable serta εsatu-satuna produksi dari, maka variabel bisa ditiadakan Hasil penederhanaan tata bahasa bebas konteks menjadi: bcd bcd bd ε nullable, tapi εbukan satu-satuna produksi dari hasil penederhanaan: bcd bcd bd b Cd d C ε ariabel ang nullable adalah variabel C. Karena penurunan C εmerupakan penurunan satusatuna dari C, maka kita ganti Cd menjadi d Kemudian produksi C εkita hapus. etelah penederhanaan menjadi: b d d IF-UTM 13 IF-UTM 14 Penghilangan Produksi Unit [5] Penghilangan Produksi Unit [5] (contd) Produksi dimana ruas kiri dan kanan aturan produksi hana berupa satu simbol variabel, misalkan: B, C D. Keberadaanna membuat tata bahasa memiliki kerumitan ang tak perlu. Penederhanaan dilakukan dengan melakukan penggantian aturan produksi unit. : b C C D C ef D dd Dilakukan penggantian berturutan mulai dari aturan produksi ang paling dekat menuju ke penurunan terminal-terminal ( dibaca menjadi ): C D => C dd C => dd ef ehingga aturan produksi setelah penederhanaan: b dd ef IF-UTM 15 : a B B C B b C D C ab D b Penggantian ang dilakukan : C D => C b B C => B b ab, karena B b sudah ada, maka cukup dituliskan B ab B => ab b => ab b ehingga aturan produksi setelah penederhanaan: ab b a ab b IF-UTM 16 IF-UTM 4
Penghilangan Produksi Useles [5] Produksi useless didefinisikan sebagai : Produksi ang memuat simbol variabel ang tidak memiliki penurunan ang akan menghasilkan terminal-terminal seluruhna. Produksi ang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan (berlebih) : aa bd Bde da B BBB a Maka : imbol variabel tidak memiliki penurunan ang menuju terminal, sehingga bisa dihilangkan Konsekuensi : aturan produksi bd tidak memiliki penurunan Penederhanaan menjadi: aa Bde B BBB a IF-UTM 17 Penghilangan Produksi Useles [5] (contd) : a B ab D B b C bb aa Maka : turan produksi D, simbol variabel D tidak memiliki penurunan. turan produksi C bb, Penurunan dari simbol, dengan jalan manapun tidak akan pernah mencapai C imbol variabel tidak memiliki aturan produksi ang menuju terminal Konsekuensi no (3) turan produksi B, simbol variabel tidak memiliki penurunan. Maka produksi ang useless: D C bb aa B Penederhanaanna menjadi: a B ab B b IF-UTM 18 tudi Kasus Referensi Buat penederhanaan untuk aturan-aturan produksi berikut ini : 1.turan Produksi 1 : ab cb db eec B ff C ae D h 2.turan Produksi 2 : Cba D bbc B c ddd C en f C D BC gh 3.turan Produksi 3 : acd CD B B b ε C d ε D ε Berdasarkan ke tiga aturan di atas buat string hasil penurunanna IF-UTM 19 1. http://www.cse.cuhk.edu.hk/~csc3130/ 2. wingll Purba, Otomata dan Bahasa Formal, Graha Ilmu,Yogakarta, 2008 3. Firrar Utdirartatmo, Teori Bahasa Otomata, Graha Ilmu, Yogakarta, 2005 dan 4. Roni Djuliawan, M.T., Diktat & Handout Kuliah Teori Bahasa & Otomata, Teknik Informatika Universitas Widatama, 2003 5. http://idhaclassroom.com/download/teknik- Otomasi-Bahasa-Kompilasi/Bahasa- Kompilasi.pdf IF-UTM 20 IF-UTM 5