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

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

 Chainate, W..  หากเกิด error() ขึ้น แสดงว่า ข้อมูลเข้าไม่เป็นประโยค  คอมไพเลอร์ที่ดี... o ไม่ควรหยุดเมื่อพบความผิดพลาดครั้งแรก o ควรรายงานความผิดพลาด.

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


งานนำเสนอเรื่อง: " Chainate, W..  หากเกิด error() ขึ้น แสดงว่า ข้อมูลเข้าไม่เป็นประโยค  คอมไพเลอร์ที่ดี... o ไม่ควรหยุดเมื่อพบความผิดพลาดครั้งแรก o ควรรายงานความผิดพลาด."— ใบสำเนางานนำเสนอ:

1  Chainate, W.

2  หากเกิด error() ขึ้น แสดงว่า ข้อมูลเข้าไม่เป็นประโยค  คอมไพเลอร์ที่ดี... o ไม่ควรหยุดเมื่อพบความผิดพลาดครั้งแรก o ควรรายงานความผิดพลาด และ recovery เพื่อให้สามารถดำเนินการ ตรวจสอบต่อไปได้  Panic mode recovery o ก่อนอื่น ให้จัดการกับ “ ช่องว่าง ” ใน parsing table o หาก M[A, a] = {empty} และ a เป็นสมาชิกของ FOLLOW(A) แล้วให้ใส่ค่าใน M[A, a] = sync  Sync อ้างถึง synchronize symbol

3  Recovery strategy for M[A, a]: o ถ้า A เป็น NT และ M[A, a]={empty} แล้ว ให้ข้าม (skip) a ไปยังข้อมูล เข้าถัดไป o ถ้า A เป็น NT และ M[A, a]={sync} แล้ว ให้ pop A ออกจาก stack o ถ้า A เป็น T และ A  a แล้ว ให้ pop token Non- terminal INPUT SYMBOL id+*()$ E A T B F E  TA T  FB F  id A  +TA BB B  *FB F(E)F(E) T  FB E  TA BB AA AA BB sync

4  +id*+id$

5  เป็นการพยายามสร้างต้นไม้วิเคราะห์กระจายจากข้อมูลเข้า โดย เริ่มจากปลายกิ่งขึ้นไปยังโหนดราก  อาจจกล่าวได้ว่าเป็นการลดทอน (reduce) ข้อมูลเข้าให้เป็น สัญลักษณ์เริ่มต้น  ในแต่ละขั้นของการลดทอน จะแทนสายอักขระย่อยที่ตรงกับ สายอักขระทางขวาของกฏ ด้วยสัญลักษณ์ไม่สิ้นสุดที่อยู่ ทางซ้าย  ข้อมูลเข้าคือ aaabc  ไวยากรณ์ได้แก่ o (1) S  aABc o (2-3) A  Aa | a o (4) B  b

6  aaabc  ข้อมูลเข้าจะเป็นประโยค ถ้าสุดท้ายแล้วเหลือเพียงสัญลักษณ์ เริ่มต้นใน stack และสิ้นสุดข้อมูลเข้า มิฉะนั้น จะไม่ถือว่าข้อมูล เข้านี้เป็นประโยชน์ คำอธิบาย Stack ( ยอดอยู่ขวาสุด ) ข้อมูลเข้า เริ่มต้น aaabc$ เลื่อน (shift) aaabc$ Shiftaaabc$ ลดทอน (reduce) ด้วยกฏ 3 aAabc$ ShiftaAabc$ Reduce with rule 2aAbc$ ShiftaAbc$ Reduce with rule 4aABc$ ShiftaABc$ Reduce with rule 1S$

7  Simple Left to Right, Right derivation (1 lookahead symbol) General parser behavior: s : top of stack a : current input 1.If action[s, a]=“accept” halt, accept, success 2.If action[s, a]= r# “reduce by production A  (rule #)” do the following: 2a. Pop 2*|  | elements from the stack. (after that assume t = top symbol in stack) 2b. Push A 2c. Push a value in goto[t, A] 3.If action[s, a]= s# “shift and goto state s*” Shift; push a and # then read next lookahead

8  (1-2) E  E+T | T (3-4) T  T*F | F (5-6) F  (E) | id  ข้อมูลเข้า : id+id*id สถา นะ ตารางกระทำ (action) ตารางกระโดด (goto) id+*()$ETF 0s5s4123 1s6accept 2r2s7r2R2 3r4 4s5s4823 5r6 6s5s493 7s5s410 8s6S11 9r1s7r1 10r3 11r5


ดาวน์โหลด ppt  Chainate, W..  หากเกิด error() ขึ้น แสดงว่า ข้อมูลเข้าไม่เป็นประโยค  คอมไพเลอร์ที่ดี... o ไม่ควรหยุดเมื่อพบความผิดพลาดครั้งแรก o ควรรายงานความผิดพลาด.

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


Ads by Google