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

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

ไวยากรณ์ของภาษาการทำ โปรแกรม (1) (SYNTAX OF PROGRAMMING LANGUAGES)

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


งานนำเสนอเรื่อง: "ไวยากรณ์ของภาษาการทำ โปรแกรม (1) (SYNTAX OF PROGRAMMING LANGUAGES)"— ใบสำเนางานนำเสนอ:

1 ไวยากรณ์ของภาษาการทำ โปรแกรม (1) (SYNTAX OF PROGRAMMING LANGUAGES)

2 ส่วนประกอบพื้นฐานของ ไวยากรณ์ภาษา  เซตของอักขระ (Character set)  กำหนดเซตของอักขระที่สามารถใช้ตั้งชื่อต่างๆ  อักขระพื้นฐาน ASCII  ตัวระบุ (Identifier)  หลักการตั้งชื่อชื่อตัวแปร, ชื่อฟังก์ชัน, ค่าคงที่  การใช้ตัวอักษร ตัวเลข underscore ในการตั้งชื่อ  สัญลักษณ์ตัวดำเนินการ (Operator symbols)  ตัวดำเนินการทางคณิตศาสตร์ ตรรกะ การเปรียบเทียบ ตัวดำเนินการกับข้อความ  ลำดับความสำคัญในการประมวลผล 2

3 ส่วนประกอบพื้นฐานของ ไวยากรณ์ภาษา  คำหลัก และคำสงวน (Keywords and reserved words)  คำหลัก เป็นตัวระบุที่กำหนดความหมายไว้เป็นการ เฉพาะในภาษานั้นๆ เช่น …………………………………………………… ……  คำสงวน คือ ………………………………………………...  ตัวอย่างภาษา Fortran REAL INTEGER INTEGER REAL REAL APPLE REAL = 3 คำใดเป็น keyword และ reserved word? 3

4 ส่วนประกอบพื้นฐานของ ไวยากรณ์ภาษา  หมายเหตุ (Comments)  อักขระคั่น และสัญลักษณ์จัดกลุ่ม (Delimiters and brackets)  กำหนดอักขระพิเศษเพื่อบอกจุดจบ หรือจุดเริ่มต้น ข้อความ  เช่น....  นิพจน์ (Expression)  ส่วนประกอบของข้อความสั่งที่สามารถถูกประมวลผล แล้วส่งผลให้โปรแกรมเปลี่ยนสถานะไปได้  เช่น …  ข้อความสั่ง (Statements)  ใช้ควบคุมลำดับการทำงานของโปรแกรม เช่น ข้อความ สั่งกำหนดค่า, ข้อความสั่งแบบมีเงื่อนไข, ข้อความสั่ง แบบวนรอบ, ข้อความเรียกใช้โปรแกรมย่อย 4

5 รูปแบบทางการในการกำหนดไวยากรณ์ ของภาษา (Formal methods to syntax definition)  ในการอธิบายโครงสร้างของภาษาเราใช้ภาษาที่ เรียกว่า …………………………………… ……………………………………….. ซึ่งมี ความหมายว่าเป็นภาษาที่ใช้อธิบายอีกภาษาหนึ่ง  ในการอธิบายภาษาคอมพิวเตอร์นิยมใช้รูปแบบ เหล่านี้เป็นภาษาเมตา  BNF (Backus-Naur Form)  EBNF (Extended Backus-Naur Form)  Syntax chart  Context Free Grammar 5

6 Backus-Naur Form (BNF)  Backus-Naur Form (1959)  Invented by John Backus and Peter Naur to describe Algol 58  พัฒนามาจากทฤษฎีภาษา ฟอร์มอล ซึ่งเสนอแนวทางไว้โดย Noam Chomsky  BNF is equivalent to context- free grammars 6

7 BNF Grammar  ประกอบด้วย 4 ส่วน คือ  T คือ ……………………………………………………..  N คือ ……………………………………………………  S คือ สัญลักษณ์นอนเทอร์มินอลที่ใช้ เป็น ……………………………  P คือ เซตของกฏที่เรียกว่า ……………………………………… ใช้ อธิบายส่วนประกอบเชิงไวยากรณ์ต่างๆ ของภาษา เช่น ชื่อตัวแปร, จำนวนเลข, นิพจน์, คำสั่งวนรอบ, โปรแกรม 7

8 BNF Grammar  การเขียนโพรดักชัน จะใช้รูปแบบ A    เมื่อ A เป็นสัญลักษณ์ในเซต ของ ………………………………..  เมื่อ  เป็นสัญลักษณ์จากเซตของ ………………………………  เช่น การเขียนโพรดักชันอธิบายเลขฐานสอง BinaryDigit  Digit BinaryDigit  Digit BinaryDigit Digit  0 Digit  1 หรือสามารถเขียนรวมกันได้ คือ 8

9 An Example Grammar #1   ; | ;  =  a | b | c | d  + | -  |  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 9

10 BNF Grammar  ตัวอย่าง จงเขียนโพรดักชันที่ใช้อธิบายเลขจำนวน เต็ม (Integer)  ตัวอย่าง จงเขียนโพรดักชันที่ใช้อธิบายเลขจำนวน จริง ( ทศนิยม ) (real)  ตัวอย่าง จงเขียนโพรดักชันที่ใช้อธิบายตัวแปรหรือ ตัวระบุ (identifier) 10

11 การแปลง (Derivation)  ในการพิจารณา ว่า ………………………………………………………………. ……………………………………….. ทำได้โดยใช้วิธี แปลง หรือ ……….…….  โดยเริ่มทำการแปลงจากโพรดักชันเริ่มต้น (start symbol) แล้วแทนที่นอนเทอร์มินอล ด้วยโพรดักชัน ต่างๆ ไปเรื่อยๆ จนกระทั่งได้รูปแบบที่เป็นสัญลักษณ์ เทอร์มินอลทั้งหมด จึงจะถือว่าสตริงนั้นเขียนได้ ถูกต้องตามไวยากรณ์ของภาษา  ใช้สัญลักษณ์ ……………… ในการกระจายแต่ละ ลำดับขั้น  มีรูปแบบการแปลง 2 ประเภท คือ Leftmost derivation และ Rightmost derivation 11

12 ตัวอย่างการทำ Derivation #1  จงพิจารณาว่า เป็นทศนิยม (real) หรือไม่ 12

13 ตัวอย่างการทำ Derivation #2  จาก BNF Grammars #1 ที่กำหนดให้ในสไลด์ก่อน หน้า จงตรวจสอบว่า a = 5 – a ; d = c + 2 ;  เป็นสตริงที่เป็นสมาชิกของไวยากรณ์ดังกล่าวหรือไม่ 13

14 Parse Tree  ในการพิจารณาว่าสตริงหนึ่งๆ จัดอยู่ในกลุ่ม ไวยากรณ์ของภาษาหรือไม่ นอกจากจะทำได้ได้โดย ใช้วิธีแปลง หรือ derive แล้ว ยังสามารถทำได้อีกวิธี หนึ่ง คือการสร้างพาสทรี (Parse tree) หรือบางครั้ง เรียกเดริเวชันทรี (Derivation tree) 14

15 Parse Tree  A hierarchical representation of a derivation 3 a = b + คุณสมบัติของ Parse Tree 1. …………………….. ของต้นไม้จะเป็น Start symbol ของไวยากรณ์เสมอ 2. ………………………………………… จะ เท่ากับจำนวนชั้น (=>) ของการทำ derivation เสมอ 3. ……………………………………... ของ ต้นไม้จะต้องเป็น terminal symbol เสมอ 15

16 Parse Tree Example #1  จงเขียน Parse Tree ของตัวอย่างการทำ Derivation #1 16

17 ไวยากรณ์กำกวม (Ambiguous grammar)  เมื่อรูปแบบของไวยากรณ์กำหนดไว้ไม่ชัดเจน เพียงพอ ทำให้สามารถสร้างพาสทรี หรือสามารถ แปลงไวยากรณ์ไปได้หลายรูปแบบ  ไวยากรณ์ที่ดีควรจะมีวิธีการแปลงที่เป็นไปได้เพียง รูปแบบเดียว  ตัวอย่าง #3 จงพิจารณาไวยากรณ์ด้านล่างว่ามีความ กำกวมหรือไม่  | -  1 | 2 | 3 | 4 | 5 17

18 ไวยากรณ์กำกวม (Ambiguous grammar)  ตัวอย่าง #3 Hint : ยกตัวอย่างสตริงที่น่าจะทำให้เกิดความ กำกวม แล้วเขียน Parse tree 18

19 การแก้ไขไวยากรณ์ไม่ให้เกิดความ กำกวม 19  compiler เข้าใจความหมายที่ถูกต้องของ ประโยค  เปลี่ยนแปลงไวยากรณ์ให้แปลงได้เพียงด้าน เดียว  จากตัวอย่าง #3 สามารถแก้ไขไวยากรณ์ได้ดังนี้  ……………………………………………………………………………  1 | 2 | 3 | 4 | 5

20 กำหนด Grammar ในรูปของ BNF ดังนี้  + | - |  * | / |  | | ( )  a | b | c |... | x | y | z  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ให้เขียนลำดับการแปลงและ Parse Tree ของ …………………………… 20


ดาวน์โหลด ppt ไวยากรณ์ของภาษาการทำ โปรแกรม (1) (SYNTAX OF PROGRAMMING LANGUAGES)

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


Ads by Google