Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Chapter 6 Shift dan Reduksi. 2 Chapter 6: Shift dan Reduksi Kelebihan pemakaian stack pada penguraian shift-reduksi: HANDEL selalu muncul pada puncak.

Presentasi serupa


Presentasi berjudul: "1 Chapter 6 Shift dan Reduksi. 2 Chapter 6: Shift dan Reduksi Kelebihan pemakaian stack pada penguraian shift-reduksi: HANDEL selalu muncul pada puncak."— Transcript presentasi:

1 1 Chapter 6 Shift dan Reduksi

2 2 Chapter 6: Shift dan Reduksi Kelebihan pemakaian stack pada penguraian shift-reduksi: HANDEL selalu muncul pada puncak stack, tak pernah di tengah. Mengapa? Perhatikan dua bentuk yang mungkin dari dua langkah derivasi right most:

3 3 Chapter 6: Shift dan Reduksi Kasus (1) Misalkan parser berada pada konfigurasi: Status input $αβγ yz$ γ direduksi menjadi B untuk mencapai : Status input $αβB yz$

4 4 Chapter 6: Shift dan Reduksi Karena B non terminal paling kanan pada αβΒ yz, maka sisi kanan handel dari αβΒ yz tidak akan berada di tengah stack. Kemudian y dipindahkan (shift) ke stack : stack input $αβBy z$ dimana βBy adalah handel dan dapat direduksi menjadi A.

5 5 Chapter 6: Shift dan Reduksi Kasus 2: Misalkan parser berada dalam konfigurasi : stackinput $αγ xyz$ disini γ merupakan handel dan berada di puncak stack. Setelah γ direduksi menjadi B dan xy dipindahkan ke stack: stackinput $αBxy z$ disini y berada di puncak stack dan merupakan handel yang akan direduksi menjadi A.

6 6 Chapter 6: Shift dan Reduksi Contoh : Konflik dalam penguraian shift reduksi : 1. Konflik shift/reduksi, tidak dapat menentukan apakah harus melakukan shift atau reduksi. 2. Konflik antara reduksi, ada beberapa reduksi, tetapi tidak tahu mana yang harus dipilih.

7 7 Chapter 6: Shift dan Reduksi Terjadi pada grammar yang bukan LR(k) (ambiguous LR(k)) Contoh : stmt → IF expr THEN stmt | if expr THEN stmt ELSE stmt other Misalkan parsernya berada pada konfigurasi: stackinput IF expr THEN stmt ELSE … $ dalam hal ini tidak diketahui, apakah dilakukan shift atau reduksi.

8 8 Chapter 6: Shift dan Reduksi Masalah lain (konflik antara reduksi / produksi mana yang akan dipakai): Contoh: (1) stmt → ID(parameter_list) (2) stmt → expr := expr (3) parameter_list → parameter_list, parameter (4) parameter_list → parameter (5) parameter → ID (6) expr → ID(expr_list) (7)expr → ID (8) expr_list → expr_list, expr (9) expr_list → expr

9 9 Chapter 6: Shift dan Reduksi Statement A(i; j) dalam penguraian akan muncul sebagai barisan token id(id; id). Salah satu situasi terjadi setelah 3 token dipindahkan ke stack stackinput …id(id,id)… id berada dipuncak (handel), harus direduksi dengan produksi yang mana? Yang benar adalah pilih (5) jika A suatu prosedur, dan (7) jika A array.

10 10 Chapter 6: Shift dan Reduksi Bagaimana caranya? Ubah id pada (1) menjadi procid, dan lihat informasi tambahan pada tabel simbol untuk menentukan apakah suatu id adalah prosedur/array. Dengan cara ini, jika A(i; j) adalah prosedur maka stackinput...procid(id,id... jika array... id(id,id)...


Download ppt "1 Chapter 6 Shift dan Reduksi. 2 Chapter 6: Shift dan Reduksi Kelebihan pemakaian stack pada penguraian shift-reduksi: HANDEL selalu muncul pada puncak."

Presentasi serupa


Iklan oleh Google