Bottom Up
Bottom Up
Bottom up merupakan salah satu metode yang digunakan untuk melakukan parsing.
Operasi yang terdapat pada bottom up parser adalah shift dan reduce, sehingga seringkali
bottom up parser disebut dengan shift-reduce parser. Pada setiap tahapan reduksi, substring
yang berada disisi kanan dari sebuah production rule (RHS) digantikan dengan symbol dari
pada LHS. Untuk membuat sebuah parsing table maka dibutuhkan DFA dari grammar
tersebut.
Bentuk umumnya penguraian shift-reduksi (shift-reduce parsing). Yang mudah
diimplementasikan penguraian presedensi operator (operator precedence parsing).
Bentuk
yang
lebih
umum
penguraian
LR.
Penguraian shift-reduksi bertujuan membentuk suatu pohon urai (parse tree) untuk suatu
string input, dimulai dari daun (bawah) lalu ke akarnya (atas). Proses ini dapat dianggap
sebagai reduksi string w menjadi simbol awal suatu grammar.
Contoh : S aABc
A Abc | b
Bd
abbcdc dapat direduksi menjadi S dengan langkah-langkah :
abbcdc
aAbcdc (pakai A b, ganti yang paling kiri)
aAdc (pakai A Abc, ganti A)
aABc (pakai B d)
S
Right most derivasinya adalah langkah kebalikan proses tadi :
S aABc aAdc aAbcdc abbcdc
Pada pereduksian, untuk memilih mana yang harus diganti harus memakai handel.
Handel dari suatu bentuk sentensial-kanan adalah suatu produksi A dan suatu posisi
dari dimana string bisa ditemukan dan diganti oleh A untuk menghasilkan bentuk
sentensial-kanan sebelumnya dengan cara derivasi right-most untuk .
Jadi
, maka A merupakan handel dari abw.
A b adalah handel dari abbcdc
A Abc adalah handel dari aAbcdc
Kadang-kadang sisi kanan dari handel tersebut yang lebih sering disebut handel. Reduksi b
menjadi A dapat dianggap sebagai pruning the handle; menghapus anak dari A dalam
proses urai.