12
11/12/2019 1 Prio Handoko, S.Kom., M.T.I. Program Studi Informatika Universitas Pembangunan Jaya Prio Handoko, S.Kom., M.T.I. Program Studi Informatika Universitas Pembangunan Jaya BAB 6: Contex-Free Grammar & Parsing

BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

1

Prio Handoko, S.Kom., M.T.I.Program Studi Informatika Universitas Pembangunan Jaya

Prio Handoko, S.Kom., M.T.I.Program Studi Informatika Universitas Pembangunan Jaya

BAB 6: Contex-Free Grammar & Parsing

Page 2: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

2

Bab 6: Context-Free Grammar & Parsing

Agenda.

• Context-Free Grammar

• Top-Down Parsing

• Buttom-Up Parsing

Contex-Free Grammar & Parsing | 3

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: 1. Derivasi2. Parsing

Contex-Free Grammar & Parsing | 4

Page 3: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

3

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}

Contex-Free Grammar & Parsing | 5

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 | 6

Page 4: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

4

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

Contex-Free Grammar & Parsing | 7

Top-Down Parsing

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: 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 | 8

Page 5: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

5

Top-Down Parsing

Latihan 2.

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

Contex-Free Grammar & Parsing | 9

Top-Down 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 | 10

Page 6: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

6

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.Problem: Diketahui grammar G = {S → aB | A, A → a, B → b | d}. Gunakan metoda recursive-descent untuk melakukan analisis sintaks terhadap kalimat x = ac.

Contex-Free Grammar & Parsing | 11

Top-Down Parsing

Latihan 3.

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.

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 | 12

Page 7: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

7

Buttom-Up Parsing

• Pengertian Dasar• Jika 𝛼 dan 𝑥 keduanya diturunkan (derivasi) dari simbol awal

grammar tertentu, maka 𝛼 disebut sentensial jika 𝛼 ∈ (VT | VN )*, dan x disebut kalimat jika 𝑥 ∈ (VT )*.

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

Contex-Free Grammar & Parsing | 13

Buttom-Up Parsing

• frase, simple frase, dan handle adalah string dengan panjang 0 atau lebih.

• Contoh kasus: Buttom-Up ParsingProblem 1: Diketahui G = {I → H | IH | IA, H → a | b | c | ... | z, A → 0 | 1 | 2 | ... | 9}

I IH Hb adalah sentensial dan b adalah simple frase

I HH (dibandingkan dengan Q1Q2 maka Q1 = H, = b, dan Q2 = . Perhatikan: simple frase (b) adalah

I Hb yang terakhir diturunkan.

Contex-Free Grammar & Parsing | 14

Page 8: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

8

Buttom-Up Parsing

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

I IH Hb adalah sentensial dan H adalah simple frase

I Ib (dibandingkan dengan Q1Q2 maka Q1 = , = H, dan Q2 = b. Perhatikan: simple frase (H) adalah

I Hb yang terakhir diturunkan.

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

Contex-Free Grammar & Parsing | 15

Buttom-Up Parsing

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 | 16

Page 9: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

9

Buttom-Up Parsing

• Contoh kasus: Relasi SederhanaProblem 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 | 17

Buttom-Up Parsing

Grammar Preseden Sederhana

• 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 | 18

Page 10: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

10

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 | 19

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

Page 11: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

11

Buttom-Up Parsing

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

Contex-Free Grammar & Parsing | 21

sentensial dan relasi handle ruas kiri produksi

b ← (← a → a ↔)→ b

b ← (← M ↔ a ↔)→ b

b ← (↔ L→ b

b ↔ M ↔ b

a

Ma)

(L

bMb

M

L

M

Z

Buttom-Up Parsing

Latihan 5.

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.

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

Contex-Free Grammar & Parsing | 22

Page 12: BAB 6: Contex-Free Grammar & Parsing - ocw.upj.ac.id€¦ · Bab 6: Context-Free Grammar & Parsing Agenda. • Context-Free Grammar • Top-Down Parsing • Buttom-Up Parsing Contex-Free

11/12/2019

12

Buttom-Up Parsing

Latihan 6.

Problem 1: Lakukanlah analisa sintaks parsing terhadap sentensialaabccbaa menggunakan metode top-down brute-force apabila diberikan grammar G = { S aAS, S cA, A aB | bB | a, B bC | aA, C c}

Problem 2: Berdasarkan grammar pada problem 1 di atas, tentukan tabel relasi preseden dan tabel grammar preseden sederhana untuk kalimat sentensial yang dianalisa.

Contex-Free Grammar & Parsing | 23

Until next Week…