Handout TIF202 Ch 6 Context Free Grammar dan Parsing

11/23/2016

Bab 6: Context-Free Grammar & Parsing

Teori Komputasi

Agenda.

• Context-Free Grammar
• Top-Down Parsing
• Buttom-Up Parsing

Fakultas Teknologi dan Desain
Program Studi Teknik Informatika

Contex-Free Grammar & Parsing |

Context-Free Grammar
• Bentuk umum produksi CFG adalah: → , ∈ �� ,
�� | �� ∗
• CFG digunakan untuk melakukan penelusuran sebuah

kalimat (sentensial)
• Penelusuran sentensial dilakukan dengan melakukan
analisis sintaks, yaitu melakukan penelusuran sentensial
sampai pada simbol awal grammar .
• Analisis sintaks dapat dilakukan melalui:



Context-Free Grammar
• Contoh kasus: Analisis sintaks.
Problem: Lakukanlah analisis sintaks untuk kalimat x23b
menggunakan kedua cara penelusuran sentensial derivasi dan parsing
jika diketahui G = {I → H | IH | IA, H → a | b | c | ... | z, A → 0 | 1 | 2
| ... | 9}

Latihan 1.
Problem 1: Menggunakan analisis sintaks derivasi, lakukan
penelusuran sentensial untuk kalimat 2 * 3 + 7 jika diketahui
grammar G1 = {S → SOS | A , O → * | +, A → 0 | 1 | 2 | ... | 9}


1. Derivasi
2. Parsing
Contex-Free Grammar & Parsing |

2

3

Contex-Free Grammar & Parsing |

4

1

11/23/2016

Context-Free Grammar
Problem 2: Lakukanlah analisis sintaks parsing terhadap hasil
analisis sintaks derivasi pada problem 1!
Problem 3: Lakukanlah penelusuran sentensial a + b * c / d

menggunakan analisis sintaks parsing jika diketahui grammar dan
G2 = {S  I | IH, H  IS | ISd, I  A | B | AB, B → * | + | /, A → a
| b | c | ... | z}
Problem 4: Apakah grammar pada problem 3 merupakan grammar
ambigu?

Contex-Free Grammar & Parsing |

Top-Down Parsing
• Top-down parsing: Jika diberikan kalimat � sebagai input.
Parsing dimulai dari simbol awal S sampai kalimat � nyata
(atau tidak nyata jika kalimat � memang tidak bisa
diturunkan dari S) dari pembacaan semua leaf dari pohon
parsing jika dibaca dari kiri ke kanan.
• Top-down parsing terdiri dari 2 kelas metoda:
• metoda dengan backup: brute-force parsing
• metoda tanpa backup: recursive descent parsing

5


Contex-Free Grammar & Parsing |

Top-Down Parsing

6

Top-Down Parsing
Latihan 2.

Brute-Force Parsing.
• Merupakan kelas metoda parsing yang menggunakan
produksi alternatif, jika ada, ketika hasil penggunaan sebuah
produksi tidak sesuai dengan simbol input.
• Contoh kasus: Brute-force parsing.

Problem 1: Diberikan grammar G = {S → aA, A → Ab | ε}.
Gunakan metoda brute-force untuk melakukan analisis sintaks
terhadap kalimat x = ac.

Problem: Diberikan grammar G = {S → aAd | aB, A → b | c, B →

ccd | ddc}. Gunakan metoda brute-force untuk melakukan analisis
sintaks terhadap kalimat x = accd.

Contex-Free Grammar & Parsing |

7

Contex-Free Grammar & Parsing |

8

2

11/23/2016

Top-Down Parsing

• 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 kasus: Recursive-descent parsing.

Recursive-Descent Parsing.
• Merupakan 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.
Contex-Free Grammar & Parsing |

Top-Down Parsing

Problem: Diketahui grammar G = {S → aB | A, A → a, B → b | d}.

Gunakan metoda recursive-descent untuk melakukan analisis sintaks
terhadap kalimat x = ac.

9

Contex-Free Grammar & Parsing |

Top-Down Parsing

Buttom-Up Parsing
• Pengertian Dasar

Latihan 3.

• Jika dan � keduanya diturunkan (derivasi) dari simbol awal
grammar tertentu, maka disebut sentensial jika ∈ (VT | VN )*,
dan x disebut kalimat jika � ∈ (VT )*.

Problem 1: Diberikan grammar G = {S → aBS | bB, S → c | cS, B
→ a | b | bS}. Gunakan metoda recursive-descent untuk melakukan

analisis sintaks terhadap kalimat x = aabbcc.

• Misalkan α = Q1 β Q2 adalah sentensial dan A ∈ VN:

• β adalah frase dari sentensial α jika: S ⇒ … ⇒ Q1 A Q2 dan
A⇒ … ⇒ β
• β adalah simple frase dari sentensial α jika : S ⇒ … ⇒ Q1 A
Q2 dan A ⇒ β
• Simple frase terkiri dinamakan handle.

Problem 2: Tentukan himpunan produksi yang dapat menerima
kalimat x = abbbc jika dilakukan metoda recursive-descent untuk
melakukan analisis sintaks terhadap kalimat tersebut.

Contex-Free Grammar & Parsing |

10

11


Contex-Free Grammar & Parsing |

12

3

11/23/2016

Buttom-Up Parsing
• frase, simple frase, dan handle adalah string dengan panjang 0
atau lebih.

• Contoh kasus: Buttom-Up Parsing

I  Hb

I  Hb

Hb adalah sentensial dan b adalah simple frase
(dibandingkan dengan Q1Q2 maka Q1 = H,  = b,

dan Q2 = . Perhatikan: simple frase (b) adalah
yang terakhir diturunkan.
Contex-Free Grammar & Parsing |

Problem 2: Diketahui G = {I → H | IH | IA, H → a | b | c | ... | z, A
→ 0 | 1 | 2 | ... | 9}
I  IH 
I  Ib

Problem 1: Diketahui G = {I → H | IH | IA, H → a | b | c | ... | z, A
→ 0 | 1 | 2 | ... | 9}
I  IH 
I  HH

Buttom-Up Parsing

Hb adalah sentensial dan H adalah simple frase
(dibandingkan dengan Q1Q2 maka Q1 = ,  = H,
dan Q2 = b. Perhatikan: simple frase (H) adalah
yang terakhir diturunkan.


Kesimpulan: Sentensial Hb mempunyai dua simple frase (b dan H),
sedangkan handlenya adalah H.

13

Contex-Free Grammar & Parsing |

Buttom-Up Parsing

14

Buttom-Up Parsing
• Contoh kasus: Relasi Sederhana

Relasi Preseden
• Relasi preseden adalah relasi antara 2 simbol grammar (baik
VT maupun VN ) dimana paling tidak salah satu simbol
tersebut adalah komponen handel.
Misalkan: R dan S adalah 2 simbol. Ada 3 relasi preseden
yang : ←, ↔, dan →.

Contex-Free Grammar & Parsing |

15

Problem 1: Diketahui grammar dengan G = {Z → bMb, M → (L | a,
L → Ma)}. Dari 3 sentensial: bab, b(Lb, b(Ma)b, maka tentukan
handle dan relasi yang ada.

Latihan 4.

Problem 1: Diketahui grammar dengan G = {S → aBS | bS, S → c |
cS, B → a | aB}. Tentukan handle dan relasi dari sentensial aabcc.
Problem 2: Diketahui grammar dengan G = {S → aBc | A, A → b |
AbC, B → aA | d}. Tentukan handle, relasi, dan tabel relasi dari
sentensial aabbcc.
Contex-Free Grammar & Parsing |

16

4

11/23/2016

Buttom-Up Parsing

Teori Komputasi

Fakultas Teknologi dan Desain
Program Studi Teknik Informatika

• Sebuah grammar disebut sebagai grammar preseden
sederhana jika:
1. paling banyak terdapat satu relasi antara setiap dua
simbolnya, dan
2. tidak terdapat dua produksi dengan ruas kanan yang
sama.

Contex-Free Grammar & Parsing |

Buttom-Up Parsing
Prosedur Parsing.
1. Buat tabel 3 kolom dengan label: sentensial dan relasi,
handle, dan ruas kiri produksi,
2. Tuliskan kalimat (atau sentensial) yang diselidiki pada baris
pertama kolom pertama,
3. Dengan menggunakan tabel relasi preseden cantumkan
relasi preseden antara setiap dua simbol yang bertetangga,

Contex-Free Grammar & Parsing |

Grammar Preseden Sederhana

19

18

Buttom-Up Parsing
4. Tentukan handel dari sentensial tersebut. Handle adalah
string yang dibatasi “←“ terakhir dan “→ “ pertama jika
dilakukan penelusuran dari kiri atau yang saling
mempunyai relasi “↔“. Handle tersebut pastilah
merupakan ruas kanan produksi, karena itu tentukan ruas
kiri dari handel tersebut,
5. Ganti handle dengan ruas kiri produksinya, kemudian
kembali ke langkah 3,
6. Kalimat yang diselidiki adalah benar dapat diderivasi dari
simbol awal jika kolom “ruas kiri produksi” menghasilkan
simbol awal.
Contex-Free Grammar & Parsing |

20

5

11/23/2016

Buttom-Up Parsing
• Contoh kasus: Grammar Preseden Sederhana

Buttom-Up Parsing
Latihan 5.

Problem 1: Diketahui grammar dengan G = {Z → bMb, M → (L | a,
L → Ma)}. Lakukan parsing grammar preseden sederhana atas
kalimat x = b(aa)b.

Problem 1: Diketahui grammar dengan G = {Z → aMa, M → (L | b |
bL, L → a) | M)}. Tentukan handle, relasi, tabel preseden dari ketiga
sentensial berikut: a(a)a, a(b)a, a((a))a.

sentensial dan relasi
b ← (← a → a ↔)→ b
b ← (← M ↔ a ↔)→ b
b ← (↔ L→ b
b↔M↔b

Problem 2: Berdasarkan grammar pada problem 1 di atas, lakukan
parsing grammar preseden sederhana untuk kalimat a(b(L)a.

handle ruas kiri produksi
a
M
Ma)
(L
bMb

L
M
Z
Contex-Free Grammar & Parsing |

21

Contex-Free Grammar & Parsing |

22

Teori Komputasi

6