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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 2 รหัสควบคุมและการคำนวณ
Advertisements

บทที่ 2 รหัสควบคุมและการคำนวณ
CSI1201 การเขียนโปรแกรมเชิงโครงสร้าง Structured Programming
แนวคิดในการเขียนโปรแกรม
การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
การทำงานแบบเลือกทำ (Selection)
Department of Computer Business
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
ข้อผิดพลาดของโปรแกรม และตัวดำเนินการ
Functional Programming
FIRST & FOLLOW Parsing Table
Functional programming part II
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
ชนิดของข้อมูลและตัวดำเนินการ
บทเรียนคอมพิวเตอร์ช่วยสอน (CAI)
จำนวนเต็ม จำนวนเต็ม  ประกอบด้วย                   1. จำนวนเต็มบวก    ได้แก่  1 , 2 , 3 , 4, 5 , ....                   2.  จำนวนเต็มลบ      ได้แก่  -1.
ภาควิชาวิศวกรรมคอมพิวเตอร์ มิถุนายน ๒๕๕๒
การแก้ปัญหาด้วยคอมพิวเตอร์
นางสาวสุพรรษา ธรรมสโรช
ภาษา SQL (Structured Query Language)
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
วิชา การออกแบบและพัฒนาซอฟต์แวร์
การจำลองความคิด
Surachai Wachirahatthapong
Computer Architecture and Assembly Language
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 11 การเขียนโปรแกรมภาษาซี
Regular expression.
ไวยากรณ์ของภาษาการทำโปรแกรม (1) (Syntax of programming languages)
คำสั่งควบคุมการทำงาน
ตัวดำเนินการ(Operator)
Infix to Postfix มหาวิทยาลัยเนชั่น หลักการภาษาชุดคำสั่ง
วิธีการทางคอมพิวเตอร์
ค33212 คณิตศาสตร์คอมพิวเตอร์ 6
นิยาม, ทฤษฎี สับเซตและพาวเวอร์เซต
ประโยคเปิดและตัวบ่งปริมาณ
ค31211 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 1
การเขียนผังงาน จุดประสงค์ 1.อธิบายความของผังงานได้
คำสั่งควบคุมการทำงานของ ActionScripts
Flow Chart INT1103 Computer Programming
เครื่องหมายและการดำเนินการ ในภาษา C
ทบทวน กันก่อน .....กระบวนการแปลโปรแกรม
คำสั่งควบคุมขั้นตอน Flow control statements
บทที่ 4 นิพจน์ทางคณิตศาสตร์.
หลักการเขียนโปรแกรม ( )
ค21201 คณิตศาสตร์เพิ่มเติม 1
การเขียนโปรแกรมเบื้องต้น
Search Engine จัดทำโดย น. ส. กรรณิดา เดิมบางปิด เลขที่ 1 น. ส. เกศินี ศรีอินทร์สุทธิ์ เลขที่ 4 น. ส. เบญจวรรณ แซ่อั๊ง เลขที่ 51 1.
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
ตัวประกอบ (Factor) 2 หาร 8 ลงตัว 3 หาร 8 ไม่ลงตัว 4 หาร 8 ลงตัว
PHP การตรวจสอบเงื่อนไข.
บทที่ 7 การวิเคราะห์งานและการโปรแกรม แบบมีโครงสร้าง
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
งานเทคโนโลยีสารสนเทศ โรงเรียนพนมเบญจา
หลักการเขียนโปรแกรม ( )
Recursive Method.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
หลักการเขียนโปรแกรม ( )
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
บทที่ 5 รหัสควบคุมและ การคำนวณ C Programming C-Programming.
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
บทที่ 6 Context Free Grammar และการแจกแจงประโยค.
PHP เบื้องต้น.
การรับและแสดงผลข้อมูล (Input/Output)
Syntax and Semantics ธนวัฒน์ แซ่เอียบ.
Summations and Mathematical Induction Benchaporn Jantarakongkul
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ค31212 คณิตศาสตร์สำหรับ คอมพิวเตอร์ 2
ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

จงแปลงไวยากรณ์ 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

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

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

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

Syntax Chart : arithmetic expressions

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

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

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> ::= +|-

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 10-2-3=5 Î L(G)?