Anda di halaman 1dari 9

MAKALAH

TEKNIK KOMPILASI
GRAMMAR LL1

Oleh :
Saerah (2013020168)
Muchsin (2012020092)
Roxal Eric Dilepang (2012020102)

STMIK HANDAYANI
MAKASSAR
2015

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.

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
Ce|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.

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) pada Parsing Table.
Jadi, suatu grammar dikatakan LL(1) jika semua entri tabel M-nya tidak
terdefinisi lebih dari satu.
LL(1) :

scanning input dari kiri (left)

menghasilkan derivasi paling kiri (leftmost)

Hanya memakai 1 simbol untukmenentukan aksi penguraian

B. Sifat Grammar LL1


Tidak semua grammar bersifat bagus. Untuk mengetahui syarat-syarat
grammar yang bagus perhatikan tiga contoh grammar berikut, ketiganya mengandung
dua produksi dengan pola

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.

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 himpunan simbol 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.

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

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.

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

Anda mungkin juga menyukai