People Innovation Excellence
 
Feature Image

Cara Menghilangkan Left Recursive

Ketika menggunakan metode top-down parsing maka kita perlu menghilangkan left recursive dari grammar yang kita miliki. Penghilangan left recursive tidak akan mengubah makna dari aturan produksi tersebut, melainkan hanya memindahkan perulangan yang tadinya berada disebelah paling kiri dari aturan produksi yang ada ke sebelah paling kanan dari aturan produksi tersebut. Berikut adalah formula dari penghilangkan left recursive.

A -> Aα | β

Jika diberikan sebuah grammar produksi A yang memiliki aturan produksi Aα | β , dimana α bisa aturan apa saja namun diawali dengan variabel A (contoh Abc, Ac, dll.) dan β adalah aturan lainnya yang tidak mengandung left recursive (contoh bc, Bc, cA, dll.). Ketika kita ingin menghilangkan left recursive maka akan terbuat 1 variabel baru yaitu A’. Nama variabel yang baru bisa apa saja asalkan tidak sama dengan variabel pada CFG yang dimiliki. Formula dapat dilihat dibawah ini.

A -> βA’

A’ -> αA’ | ɛ

Lihatlah contoh berikut ini untuk mempermudah pemahaman dari formula tersebut. Diberikan sebuah CFG sebagai berikut:

S -> Sab | AbA

A -> a | b

Dari grammar diatas kita tahu bahwa aturan produksi yang mengandung left recursive adalah yang S, sehingga kita perlu mencari yang mana adalah alpha dan beta.

Alpha adalah sisa aturan produksi yang didepannya mengadung variabel pemproduksi itu sendiri (memanggil dirinya sendiri yang terletak disebelah kiri dari grammar), sedangkan beta adalah aturan produksi yang tidak mengandung left recursive. Ketika menghilangkan left recursive maka grammar akan menjadi:

S -> AbAS’

S’ -> abS’ | ɛ

A -> a | b

Variabel produksi A akan tetap sama karena tidak mengandung left recursive.

Contoh lainnya bila kita memiliki grammar S à Sab | AbA | SA , maka kita tahu bahwa ada 2 aturan produksi dari S ini yang mengandung left recursive, yaitu Sà Sab dan Sà SA. Alpha dari contoh kasus ini ada 2 yaitu ab dan A, sedangkan beta hanya 1 yaitu AbA.

Sehingga ketika kita menghilangkan left recursive maka akan menjadi sebagai berikut.

S -> AbAS’

S’ -> abS’ | AS’ | ɛ


Published at :
Written By
Novita Hanafiah., S.Kom., M.Sc.
Lecturer of Computer Science | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close