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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คำสั่งเริ่มต้น รูปแบบ. <HTML>. </HTML>
Advertisements

โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
การทำงานแบบเลือกทำ (Selection)
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
การผลิตโค๊ดสำหรับ Procedure Call
Type Judgments และ Type Rules. คำศัพท์ที่จะใช้ Type judgment: การตัดสินความถูกต้องของ type สำหรับ expression หรือ statement ใน โปรแกรม – เป็นบทสรุป (conclusion)
รหัสระหว่างกลาง (Intermediate code)
ตัววิเคราะห์การกระจาย LR(1)
Functional programming part II
FIRST & FOLLOW Parsing Table
Stack.
Stack Holidays/seasonal content.
ภาควิชาวิศวกรรมคอมพิวเตอร์ มิถุนายน ๒๕๕๒
Data structure & Algorithms
ลักษณะการทำงานของ Stack
การแก้ปัญหาด้วยคอมพิวเตอร์
THE WAY OF THE PROGRAM.
บทที่ 5 การทำงานแบบวนซ้ำ
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
หน่วยที่ 1 ระบบคอมพิวเตอร์
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
วิชา การออกแบบและพัฒนาซอฟต์แวร์
โปรแกรมย่อย : Pascal Procedure
บทที่ 1. พื้นฐานความรู้ทั่วไป
ระบบอัตโนมัติและการพิมพ์
หน่วยที่ 2 วิธีการออกแบบโปรแกรม
Decision Tree Analysis
การควบคุมข่ายงาน (PERT/CPM)
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (4) ความสัมพันธ์ (Relations)
ระบบจำนวนเต็ม โดย นางสาวบุณฑริกา สูนานนท์
บทที่ 3 สตริงและ เรคคคอร์ค
ไวยากรณ์ของภาษาการทำโปรแกรม (1) (Syntax of programming languages)
Review : เซตของ states ( สถานะ ) : เซตของ Input alphabets/symbols ( อักษร / สัญลักษณ์ รับเข้า ) : Initial state ( สถานะเริ่มต้น ) : เซตของ Final states.
ภาควิชาวิทยาศาสตร์ประยุกต์ คณะวิทยาศาสตร์เทคโนโลยีและการเกษตร
การเขียนโปรแกรมภาษาซี
ผังงาน (Flowchart) มหาวิทยาลัยเนชั่น หลักการภาษาชุดคำสั่ง
การใช้ฟังก์ชั่นทาง EXCEL
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
ประโยคเปิดและตัวบ่งปริมาณ
สมบัติของความสัมพันธ์
STACK ADT By Pantharee S.. Stack Model  A list with the restriction that insertions deletions can be performed in only one position (LIFO)  Push – insert.
โครงสร้างข้อมูลคืออะไร ?
โปรแกรมสาธิตการเสนอราคา e-Auction (Sealed Bid ตามระเบียบฯ ปี 2549)
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมเบื้องต้น
การเขียนผังงาน (Flowchart)
กองซ้อน ยอดกองซ้อน (stack).
โครงสร้างข้อมูลแบบกองซ้อน (Stack)
เครื่องวัดแสง Foot Candle Lux
ความรู้เบื้องต้นเกี่ยวกับระบบ Introduction to the System
adversarial Search Techniques
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
หลักการเขียนโปรแกรม ( )
ความต้านทานที่ปรับค่าได้
หลักการเขียนโปรแกรมเบื้องต้น
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
หน่วยที่ 3 การบันทึกรายการค้าในสมุดรายวันทั่วไป
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
โครงสร้างข้อมูลแบบ สแตก (stack)
Syntax and Semantics ธนวัฒน์ แซ่เอียบ.
การแก้ไขปัญหา วิชา เทคโนโลยีและสารสนเทศ
วิชาคอมพิวเตอร์ คุณครูภาราดร ฟุ้งเฟื้อง
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
การประยุกต์ใช้ Stack การประยุกต์ใช้ Stack
ใบสำเนางานนำเสนอ:

 Chainate, W.

 หากเกิด 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

 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

 +id*+id$

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

 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$

 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

 (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