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

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

ไวยากรณ์ของภาษาการทำโปรแกรม (2) (Syntax of programming languages)

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


งานนำเสนอเรื่อง: "ไวยากรณ์ของภาษาการทำโปรแกรม (2) (Syntax of programming languages)"— ใบสำเนางานนำเสนอ:

1 ไวยากรณ์ของภาษาการทำโปรแกรม (2) (Syntax of programming languages)

2 Extended BNF เริ่มมีการปรับปรุงรูปแบบ BNF ให้สามารถเขียนได้ง่ายขึ้น เรียกว่ารูปแบบ EBNF (Extended BNF) หรือ EBNF ประเด็นสำคัญของการปรับปรุงคือ ……………………………โดยใช้ สัญลักษณ์เพิ่มเข้ามาดังนี้

3 Extended BNF …………………………….…….อยู่ภายในเครื่องหมาย [ ] หมายถึง ลำดับของสัญลักษณ์ซึ่งเป็นทางเลือก ซึ่งอาจจะเขียนหรือไม่ก็ได้ <if-STMT> → if ‘(’ <expr> ‘)’ <stmt> [ else <stmt>] ……………………………….. อยู่ภายในเครื่องหมาย ( ) และเขียน แยกกันโดยใช้ | หมายถึง ใช้บ่งบอกตัวเลือกที่เป็นไปได้ทั้งหมด ซึ่งจะต้องเลือกว่าเป็นตัวใด ตัวหนึ่งที่อยู่ภายในเครื่องหมาย ( ) เท่านั้น <term> → <term> ( + | - ) <constant>

4 Extended BNF ………………………. อยู่ภายในเครื่องหมาย { }
หมายถึงสิ่งที่อยู่ในวงเล็บเกิดขึ้นซ้ำๆ กันได้หลายๆ ครั้ง สำหรับกฎที่มีการเรียกตัวเองซ้ำ สามารถใช้ { } เพื่อทำให้การเรียก ตัวเองซ้ำหมดไป <identifier> → <letter> { <letter> | <digit> }* สามารถเพิ่มเติมสัญลักษณ์บอกการเกิดซ้ำ {…}* หมายถึง สิ่งที่อยู่ในวงเล็บเกิดขึ้นซ้ำๆ กันได้ ……………………………. {…}+ หมายถึง สิ่งที่อยู่ในวงเล็บเกิดขึ้นซ้ำๆ กันได้ …………………………….

5 ตัวอย่าง BNF BNF <expr>  <expr> + <term>
<term>  <term> * <factor> | <term> / <factor> | <factor> นิพจน์คือ เทอมเดี่ยวๆ เพียงเทอมเดียว (เช่น Y, 345) หรือ เป็นเทอมที่ซับซ้อนขึ้นโดยนำ หลายๆ เทอมมา บวก ลบ คูณ หาร กันได้ (เช่น Y / 2 * Z) เทอม คือ แฟคเตอร์หนึ่งแฟคเตอร์ หรือ หลายแฟคเตอร์มาคูณ หรือหารกัน

6 ตัวอย่าง BNF แปลงไปเป็น EBNF

7 จงแปลงไวยากรณ์ BNF นี้ให้กลายเป็น EBNF
<program>  <stmts> <stmts>  <stmt> ; | <stmt> ; <stmts> <stmt>  <var> = <expr> <var>  a | b | c | d <expr>  <term> + <term> | <term> - <term> <term>  <var> | <const> <const>  0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

8 จงแปลงไวยากรณ์ BNF นี้ให้กลายเป็น EBNF

9 Syntax Chart (Diagram)
แผนภูมิไวยากรณ์ ใช้ในการอธิบายไวยากรณ์ของภาษาคอมพิวเตอร์ โดย เริ่มต้นใช้ในการอธิบายภาษา Pascal โดยใช้รูปภาพอธิบายโครงสร้างภาษา สัญลักษณ์นอนเทอร์มินอล จะถูกเขียนอยู่ใน…………………… สัญลักษณ์เทอร์มินอล จะถูกเขียนอยู่ใน……………………….

10 BNF : arithmetic expressions
<expression > ::= <expression >+<term > | <expression >- <term > | <term > <term > ::= <term >* <factor > | <term >/ <factor > | <factor > <factor > ::= number | name | ‘(’ <expression > ‘)’

11 Syntax Chart : arithmetic expressions

12 Context-Free Grammars
Developed by Noam Chomsky in the mid-1950s Language generators, meant to describe the syntax of natural languages

13 Context Free Grammar ให้ ………………………………หรือ Context-Free-Grammar ประกอบด้วย 4 เซตจำกัด คือ V คือ T คือ P คือ S คือ

14 Context Free Grammar LET G(V,T,S,P) V = T = S = P = <comp> ::= <expr>=<expr> <expr> ::= <num>|<num><op><num> <num> ::= <digit>|<num><digit> <digit> ::= 1|2|3|4|5|6|7|8|9 <op> ::= +|-

15 Context Free Grammar พิจารณา ประโยค 1 – 5 ว่าเป็นสมาชิกของ Grammar หรือไม่ Q1: Is 1 Î L(G)? Q2: Is 1+1 Î L(G)? Q3: Is 1+1=3 Î L(G)? Q4: Is 1-2=-1 Î L(G)? Q5: Is =5 Î L(G)?


ดาวน์โหลด ppt ไวยากรณ์ของภาษาการทำโปรแกรม (2) (Syntax of programming languages)

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


Ads by Google