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

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

Syntax and Semantics ธนวัฒน์ แซ่เอียบ.

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


งานนำเสนอเรื่อง: "Syntax and Semantics ธนวัฒน์ แซ่เอียบ."— ใบสำเนางานนำเสนอ:

1 Syntax and Semantics ธนวัฒน์ แซ่เอียบ

2 Introduction ภาษาจำเป็นต้องอธิบายให้กับผู้คนจำนวนมากสามารถเข้าใจคำอธิบายที่ภาษานั้นจัดเตรียมไว้ให้ ALGOL 60 และ ALGOL 68 เป็นภาษาแรกที่ใช้รูปแบบที่สั้นกระชับในการอธิบายรูปแบบภาษา จากคำอธิบายเหล่านี้จะต่อช่วยให้โปรแกรมเมอร์สามารถนำไปเขียน expressions statements และโครงสร้างของโปรแกรมทั้งหมดได้ รวมทั้งผลกระทบที่เกิดขึ้นเมื่อโปรแกรมปฏิบัติงาน การเรียนภาษาที่ใช้ในการเขียนโปรแกรม เหมือนกับการเรียนภาษาตามธรรมชาติ สามารถแบ่งออกได้ 2 ส่วนคือ syntax และ semantics

3 Syntax Syntax คือรูปแบบของ expressions statement และ program units
ไวยกรณ์ของภาษาบอกได้ 2 สิ่งคือ อะไรคือส่วนที่ถูกต้อง อะไรคือความสัมพันธ์ระหว่างส่วนที่ถูกต้อง ตัวอย่าง if statement ของภาษา C if (i>0) printf(“Finish”);

4 Syntax The lowest level syntactic units are called lexemes
The description of lexemes can be given by a lexical specification Lexemes include its identifiers, literals, operators, and special words if (i>0) sum = sum + 4;

5 Syntax A token of a language is a category of its lexemes
An identifier is a token that can have lexemes or instance, such as sum and total In some cases, a token has only a single possible lexemes plus_op, the token for the arithmetic operator symbol +, has just one possible lexemes

6 Syntax พิจารณา statement ของภาษา C ดังต่อไปนี้ Index = 2 * count + 17;
Q. Lexemes มีอะไรบ้างและแต่ละ lexemes คือ tokens อะไร (tokens มีดังต่อไปนี้ equal_sign, mult_op, semicolon, int_literal, identifier, plus_op) Lexemes Tokens

7 Syntax Syntax informally
Example: “Everything between “/*” and “+/” is a comment and should be ignored.” Code: /*Store the result in y.*/ x = 3; */ y = x * 17.2; => Syntax formally

8 Semantics Semantics คือความหมายของ expressions statement และ program units เหล่านี้

9 Syntax Formally กลไกที่ใช้อธิบายไวยกรณ์ของภาษาที่ใช้ในการเขียนโปรแกรมเรียกว่า grammars Fundamentals A metalanguage คือภาษาซึ่งใช้อธิบายภาษาอื่นเช่น BNF BNF ใช้ abstractions ในโครงสร้างของไวยกรณ์ เช่น assignment statement ของภาษา C ใช้ abstraction คือ <assign> กำหนดได้จาก <assign> -> <var> = <expression>

10 BNF สัญลักษณ์ทางซ้ายของลูกศรเรียกว่า left-hand side (LHS)
คือ abstraction ที่จะนำมานิยาม ข้อความทางขวามือเรียกว่า right-hand side (RHS) ประกอบด้วยการผสมระหว่าง tokens, lexemes, การอ้างถึง abstraction อื่น ทั้งหมดนี้เรียกว่า rule หรือ production (ซึ่ง <var> และ <expression> ต้องนิยามเพื่อทำให้ <assign> สมบูรณ์)

11 BNF Abstraction สามารถมีรูปแบบไวยากรณ์ได้มากกว่าหนึ่งรูปแบบ
การนิยามหลายๆการนิยามสามารถเขียนได้โดยใช้สัญลักษณ์ | ตัวอย่าง if statement ของภาษา Pascal สามารถเขียนได้ดังนี้ <if_stmt> -> if <logic_expr> then <stmt> <if_stmt> -> if <logic_expr> then <stmt> else <stmt> หรือเขียนด้วยรูปแบบ | if <logic_expr> then <stmt> else <stmt>

12 BNF รายการที่มีความยาวไม่คงที่ทางคณิตศาสตร์สามารถเขียนโดยใช้ ellipsis (…) เช่น 1, 2, … BNF ไม่สามารถมี ellipsis ทางเลือกคือการใช้ recursion แทน <ident_list> -> identifier | identifier , <ident_list> นิยาม <ident_list> เป็นไปได้ทั้ง identifier ตัวเดียว หรือ identifier ตามด้วย comma และตามด้วย <ident_list> อื่นๆ ถ้านิยาม identifier -> 1 | 2 | 3 แล้ว <ident_list> จะเป็นรายการใดได้บ้าง

13 BNF BNF คือเครื่องมือสำหรับใช้นิยามภาษา
สามารถนำกฎต่างๆที่มีมาใช้สร้างเป็น sentences กระบวนการสร้าง sentence เรียกว่า derivation Grammar ของภาษาส่วนใหม่เริ่มต้นด้วยการนิยาม <program> เป็นอันดับแรก

14 Exercise Grammar ของภาษาหนึ่ง
<program> -> begin <stmt_list> end <stmt_list> -> <stmt> | <stmt> ; <stmt_list> <stmt> -> <var> = <expression> <var> -> A | B | C <expression> -> <var> + <var> | <var> - <var> | <var> ให้เขียนตัวอย่าง derivation จาก grammar ที่กำหนดให้

15 Exercise Grammar ของ Assignment Statement
<assign> -> <id> = <expr> <id> -> A | B | C <expr> -> <id> + <expr> | <id> * <expr> | ( <expr> ) | <id> ให้เขียน derivation เพื่อให้ได้ statement ดังต่อไปนี้ A = B * ( A+C)

16 ที่มา Concepts of programming languages : Sebesta, Robert W.


ดาวน์โหลด ppt Syntax and Semantics ธนวัฒน์ แซ่เอียบ.

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


Ads by Google