งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

ตัววิเคราะห์การกระจาย LR(1)

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ตัววิเคราะห์การกระจาย LR(1)"— ใบสำเนางานนำเสนอ:

1 ตัววิเคราะห์การกระจาย LR(1)
Warattapop Chainate

2 LR(1) Parsing LR(1) parsing มีองค์ประกอบและขั้นตอนวิธีเหมือนกับ SLR(1) parsing ต่างกันเพียงวิธีการสร้าง action และ goto tables เท่านั้น แต่... ก่อนจะไปสร้างตาราง เราต้องรู้จัก item LR(1) closure set goto set และ กลุ่มคาโนนิคอล LR(1)

3 Item LR(1) และ Closure ไอเท็ม LR(1) ประกอบด้วยสองส่วน ส่วนแรกเหมือนกับไอเท็ม LR(0) และส่วนที่สองเป็น terminal sym หรือ $ โดยจะเขียนอยู่ในรูป [ส่วนแรก, ส่วนที่สอง] เช่น [X, a] Closure(I) สำหรับ LR(1) เพิ่มสมาชิกทุกตัวใน I เข้าไปเป็นสมาชิกของ closure(I) พิจารณาไอเท็ม LR(1) ที่เป็นสมาชิกใน closure(I) ถ้ามี  อยู่หน้า non-terminal sym สมมติว่าคือ [XB, a] และ B มีกฎ B ให้เพิ่มไอเท็ม LR(1) คือ [B, b] เมื่อ b  FIRST(a) เข้าไปเป็นสมาชิกของ closure(I) ** หากมี $ ให้มอง $ เป็น terminal sym ตัวหนึ่ง FIRST($)={$} ทำข้อ b ซ้ำๆ จนกว่าจะไม่มีไอเท็ม LR(1) ใหม่เพิ่มเข้าไปใน closure(I) จงหา closure({[S’S, $]})

4 goto for LR(1) goto(I, X) เมื่อ I เป็นเซตของไอเท็ม LR(1) และ X เป็น non-terminal หรือ terminal sym จะมีวิธีการหาสมาชิกดังนี้ นำไอเท็ม LR(1) ใน I ที่มี  ติดอยู่ข้างหน้า X มารวมกันเป็นเซต เลื่อน  ไปไว้หลัง X แล้วหา closure ของเซตดังกล่าว จาก กำหนดให้ I3={[SbA, $], [Sbda, $], [Ad, $], [A, $]} จงหาเซตของ goto (0) S’  S (1-4) S  Aa | bA | bda |  (5-6) A  d | 

5 กลุ่มคาโนนิคอล LR(1) สำหรับไวยากรณ์ G=(N, T, S, P) และ Ag (N{S’}, T, S’, P{S’S}) กำหนดให้ C เป็นเซตของ ไอเท็ม LR(1) ของ Ag G’ ซึ่งเรียกว่า “กลุ่มคาโนนิคอล LR(0) ของ Ag G’” C := {closure({[S’S, $]})}; ทำซ้ำๆ จนกว่าจะไม่มีสมาชิกใหม่เพิ่มเข้าไปใน C ดังนี้ สำหรับ (สมาชิก I แต่ละตัวใน C) สำหรับ (สัญลักษณ์สิ้นสุด และสัญลักษณ์ไม่สิ้นสุด X แต่ละตัว) ถ้า (goto(I, X) และ goto(I, X)C) แล้ว เพิ่ม goto(I, X) เข้าไปในสมาชิกตัวใหม่ใน C;

6 I0={[S’S, $], [SAa, $], [SbA, $], [Sbda, $], [S, $], [Ad, a], [A, a]}


ดาวน์โหลด ppt ตัววิเคราะห์การกระจาย LR(1)

งานนำเสนอที่คล้ายกัน


Ads by Google