Tugas Kelompok Vi (Grammar Ll1)

Embed Size (px)

Citation preview

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    1/9

    MAKALAH

    TEKNIK KOMPILASI

    GRAMMARLL1

    Oleh :

    Saerah (2013020168)

    Muchsin (2012020092)Roxal Eric Dilepang (2012020102)

    STMIK HANDAYANI

    MAKASSAR

    2015

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    2/9

    Kata Pengantar

    Puji syukur kami panjatkan kehadirat Allah SWT karena dengan rahmat, karunia,

    serta taufik dan hidayah-Nya kami dapat menyelesaikan makalah tentang Grammar LL1. Dan

    juga kami berterima kasih pada Bapak Supriadi Syam, S.Kom selaku Dosen mata kuliah

    Teknik Kompilasi yang telah memberikan tugas ini kepada kami.

    Kami sangat berharap makalah ini dapat berguna dalam rangka menambah wawasan

    serta pengetahuan kita mengenai Grammar LL1. Kami juga menyadari sepenuhnya bahwa di

    dalam makalah ini terdapat kekurangan dan jauh dari kata sempurna. Oleh sebab itu, kami

    berharap adanya kritik, saran dan usulan demi perbaikan makalah yang telah kami buat di

    masa yang akan datang, mengingat tidak ada sesuatu yang sempurna tanpa saran yang

    membangun.

    Semoga makalah sederhana ini dapat dipahami bagi siapapun yang membacanya.

    Sekiranya laporan yang telah disusun ini dapat berguna bagi kami sendiri maupun orang yang

    membacanya. Sebelumnya kami mohon maaf apabila terdapat kesalahan kata-kata yang

    kurang berkenan dan kami memohon kritik dan saran yang membangun demi perbaikan di

    masa depan.

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    3/9

    BAB 1

    PENDAHULUAN

    A. Latar belakang

    Tata bahasa yang rancu dapat diperbaiki dengan cara menghilangkan rekursi

    kiri dan melakukan faktorisasi kiri.Rekursi kiri adalah aturan produksi dengan simbol

    non-terminal pada sisi kiri produksi sama dengan simbol awal sisi kanan produksi,

    seperti E E+E. Rekursi kiri dapat menyebabkan pengulangan tak hingga. Faktorisasi

    kiri adalah pengubahan aturan-aturan produksi memiliki simbol awal sisi kanan

    produksi yang sama. Contohnya E E+E dan E E*E. Faktorisasi kiri perlu

    dilakukan untuk memastikan pilihan aturan produksi yang akan dipakai

    Tidak rancu dan tidak memiliki rekursi kiri merupakan ciri-ciri dari tata

    bahasa yang disebut tata bahasa LL(1). Kedua huruf L berasal dari left (kiri). Huruf L

    pertama berarti tiap karakter masukan diproses satu per satu mulai dari kiri ke kanan.

    Huruf L kedua berarti pemakain derivasi derivasi terkiri. Sedangkan angka 1 berarti

    pada setiap langkah penguraian hanya membutuhkan satu token.

    Penguraian tata bahasa LL(1) menggunakan teknik top-down. Dalam teknik

    tersebut dilakukan proses derivasi terkiri terhadap suatu masukan . Dalam proses

    derivasi tersebut dilakukan pembentukan pohon urai yang dimulai dari akar dan

    membentuk simpul-simpul baru dengan urutan preorder. Contohnya tata bahasa

    berikut :

    S aBC

    B bc| d

    C e | f

    Selain pengurai top-down, ada satu jenis pengurai yang disebut pengurai

    bottom-up, yaitu proses pembentukan pohonnya merupakan kebalikan dari pengurai

    top-down. Pengurai top-down lebih mudah digunakan untuk pembentukan pengurai

    yang efisien. Pengurai bottom-up dapat menangani tata bahasa yang lebih besar,

    tetapi implementasi pengurai ini lebih sukar dibandingkan pengurai top-down.

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    4/9

    BAB II

    PEMBAHASAN

    A. Pengertian

    Grammar LL1 adalah grammar yang dapat di parse oleh Parser yang membaca

    input dari kiri. Grammar yang bagus adalah grammar yang mempunyai nilai tunggal

    untuk setiap sel M(A,a) padaParsing Table.

    Jadi, suatu grammar dikatakan LL(1) jika semua entri tabel M-nya tidak

    terdefinisi lebih dari satu.

    LL(1) : L scanning input dari kiri (left)

    L menghasilkan derivasi paling kiri (leftmost)

    1 Hanya memakai 1 simbol untukmenentukan aksi penguraian

    B. Sifat Grammar LL1

    Tidak semua grammar bersifat bagus. Untuk mengetahui syarat-syarat

    grammar yang bagusperhatikan tiga contoh grammar berikut, ketiganya mengandung

    dua produksi dengan pola :

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    5/9

    Sekarang kita analisa mengapa pada ketiga contoh di atas M(A, a) tidak

    bernilai tunggal. Sifat-sifat produksi pada masing-masing contoh (yaitu produksi yang

    berpola adalah :

    Grammar yang mempunyai ketiga sifat di atas dinamakan grammar LL(1),

    singkatan dari memindai inputan dari kiri ke kanan untuk memproduksi penurunan

    paling kiri menggunakan 1 ( satu ) simbol masukan dari depan pada setiap langkah

    untuk pengambilan keputusan tindakan parsing .

    C. Kelemahan Grammar LL1

    LL( 1 ) parser tidak dapat mengenali semua bahasa bebas konteks(CFGs). Jika

    CFG ingin diubah menjadi grammer LL(1) Ada beberapa syarat yang harus terpenuhi

    yaitu :

    1. Grammar tidak ambiguous.

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    6/9

    2. Grammar tidak mengandung left recursive.

    Contoh: E -> Ea | b Maka harus dilakukan penghilangan Left Recursion

    E -> bE

    E -> aE |

    Pada grammar tersebut, telah dilakukan left factoring.

    S> E | E a

    E> b |

    FIRST (E) = { b , } dan FIRST ( E a ) = { b , a } , sehingga mereka

    bersinggungan dengan { b}

    Maka harus dilakukan left Factoring

    S -> b | | b a | a

    S -> b E | E

    E -> a |

    Mengapa harus menghilangkan left recursion dan left factoring dalam top

    down parsing? Karena metode top down parsing tidak dapat menangani grammar left

    recursive, maka left recursion perlu di hilangkan. Selain itu dilakukan penghilangan

    left recursion dan left factoring agar top down parsing dapat memahami grammer

    tersebut serta menghilangkan ambigu pada garammer yang mungkin menyebabkan

    waktu proses yang lebih lama dan mungkin terjadi proses berulang.

    D. Istilah dalam Grammar LL1

    1. First(X) adalah himpunansimbol terminal yang merupakan simbol pertama dari X

    atau merupakan simbol pertama dari simbol-simbol yang dapat diturunkan dari X.2. Follow(Y) adalah himpunan simbol terminal yang dapat muncul tepat di sebelah

    kanan Y melalui nol atau lebih derivasi

    3. Rekursi Kiri adalah Aturan produksi dengan simbol non-terminal pada sisi kiri

    produksi sama dengan simbol awal sisi kanan produksi, seperti E E+E

    E. Top Down Parsing

    Diberikan kalimat x sebagai input. Parsing dimulai dari simbol awal S sampai

    kalimat x nyata (atau tidak nyata jika kalimat x memang tidak bisa diturunkan dari S)

    dari pembacaan semua leaf dari pohon parsing jika dibaca dari kiri ke kanan.

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    7/9

    Ada 2 kelas metoda parsing top-down yaitu kelas metoda dengan backup dan

    kelas metoda tanpa backup. Contoh metoda kelas dengan backup adalah metoda

    Brute-Force sedangkan contoh metoda kelas tanpa backup adalah metoda recursive

    descent.

    1. Metoda Brute-Force

    Kelas metoda dengan backup termasuk metoda Brute-Force adalah kelas

    metoda parsing yang menggunakan produksi alternatif, jika ada, ketika hasil

    penggunaan sebuah produksi tidak sesuai dengan simbol input. Penggunaan

    produksi sesuai dengan nomor urut produksi.

    Contoh :

    Diberikan grammar G = {S aAd|aB, A b|c, B ccd|ddc}. Gunakan

    metoda Brute Force untuk melakukan analisis sintaks terhadap kalimat x = accd

    Metoda Brute-Force tidak dapat menggunakan grammar rekursi kiri,

    yaitu grammar yang mengandung produksi rekursi kiri (left recursion) :

    . Produksi rekursi kiri akan menyebabkan parsing mengalami

    looping tak hingga.

    2. Metoda Recursive-Descent

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    8/9

    Kelas metoda tanpa backup, termasuk metoda recursive descent, adalah kelas

    metoda parsing yang tidak menggunakan produksi alternatif ketika hasil akibat

    penggunaan sebuah produksi tidak sesuai dengan simbol input. Jika produksi A

    mempunyai dua buah ruas kanan atau lebih maka produksi yang dipilih untuk

    digunakan adalah produksi dengan simbol pertama ruas kanannya sama dengan

    input yang sedang dibaca. Jika tidak ada produksi yang demikian maka dikatakan

    bahwa parsing tidak dapat dilakukan.

    Ketentuan produksi yang digunakan metoda recursive descent adalah : Jika

    terdapat dua atau lebih produksi dengan ruas kiri yang sama maka karakter

    pertama dari semua ruas kanan produksi tersebut tidak boleh sama. Ketentuan ini

    tidak melarang adanya produksi yang bersifat rekursi kiri.

    Contoh :

    Diketahui grammar G = {S aBA, A a, B bd}. Gunakan

    metoda recursive descent untuk melakukan analisis sintaks terhadap kalimat x

    = ac.

  • 7/25/2019 Tugas Kelompok Vi (Grammar Ll1)

    9/9

    BAB III

    PENUTUP

    Demikian Makalah Grammar LL1 ini kami susun. Tentu banyak kekurangan dan

    kelemahan kerena terbatasnya pengetahuan dan kurangnya rujukan atau referensi yang kami

    peroleh hubungannya dengan makalah ini.

    Penulis banyak berharap kepada para pembaca yang budiman memberikan kritik

    saran yang membangun kepada kami demi sempurnanya makalah ini. Semoga makalah ini

    dapat bermanfaat bagi penulis dan pembaca pada khususnya.

    Makassar, 25 Juni 2015

    Penulis