Anda di halaman 1dari 9

LALR(1) PARSING / LOOKAHEAD-LR

PARSING
 LALR didasarkan pada pengamatan bahwa, dalam banyak

kasus pembentukan transisi LR1 adalah karena sebagian

adanya banyak state yang berbeda yang memiliki set yang

sama komponen pertamanya (pada lookaheads symbol)

 Inti dari keadaan transisi dari LR (1)item adalah himpunan LR (0)

item terdiri dari komponen-komponen pertama LR (1) di state.


 Untuk membentuk transisi LALR(1) dari LR(1) ada 2 prinsip yang harus

diperhatikan :

1. Transisi dari LR(1) merupakan transisi LR(0)

2. Diberikan dua state yaitu S1 dan S2 dari transisi LR(1) yang memiliki inti yang

sama. Misalkan ada transisi pada symbol X dari state S1 menuju t1. Dan juga

ada transisi X dari state S2 ke state t2, sementara t1 dan t2 memiliki inti yang

sama.
 Lookahead LR parser mempunyai beberapa kelebihan dibanding dengan

variant LR parser lainnya, yaitu :

a. LALR parser mempunyai ukuran yang kecil. Jika pada LR parser lainnya

mempunyai 1000 state, maka pada LALR Parser mempunyai state yang lebih

sedikit.

b. LALR parser dapat menangani banyak grammar dibanding dengan SLR

parser.

c. LALR menggunakan lookahead yang mana lebih spesifik karena LALR dapat

menerima banyak konteks parsing. LALR akan melihat dulu konteks yang ada

di depannya, sebelum menentukan konstituennya


Arsitektur Lookahead LR Parser
Gambar di atas merupakan arsitektur dari LR parser yang terdiri dari input stream, stack,
parse table, action table, goto table, dan output stream. Sedangkan di tengah-tengah
arsitektur tersebut yang merupakan inti dari parser adalah parsing logic. Scanner
digunakan sebagai tokenize input data sebelum dikirim ke parser. Pada current token,
dalam hal reduce action, state selanjutnya adalah melihat ke goto table. Aksi-aksi yang
dapat ditemukan pada table action adalah shift, reduce, atau accept. Jika tidak ada aksi
yang didefinisikan pada state dan token tersebut, proses parsing error dan diabaikan.
a. Shift n : ambil kategori yang sedang dibaca, letakkan ke dalam stack, dan ubahstate
menjadi n.
b. Reduce n : ambil tumpukan dari stack dan satukan dengan menggunakan aturan ke-
n, letakkan kembali hasilnya ke stack, ubah state sesuai dengan goto table.
c. Accept : masukan diterima dan proses parsing berhasil.
Latihan :
1. Tentukan Tabel LR 0 dan Tabel Parsing Action dari CFG berikut :
S → AA
A → aA | b
Dengan string “aabb$”

2. Tentukan Tabel SLR dan Tabel Parsing Action dari CFG berikut :
S → BcD | D
B → eD
C→f
Dengan string “efcf$”

3. . Tentukan Tabel LR 1 dan Tabel Parsing Action dari CFG berikut :


S → ABC
A → ab
B→b
C → cd
Dengan string “abbcd$”

4. Tentukan Tabel LALR dan Tabel Parsing Action dari CFG berikut :
A→ BB
A → ab| cd
Dengan string “abcd$”

Anda mungkin juga menyukai