tailieunhanh - Lecture Programming languages (2/e): Chapter 2c - Tucker, Noonan

The ideas discussed in this chapter provide a basis for describing the syntax of a complete programming language. However, so as not to be overwhelmed by the details, we have chosen to define a subset of C, a language that we call Clite. This language should be familiar to anyone who has written a program inC, C++. or Java. This chapter presents the following content: Lexical syntax, concrete syntax. | Programming Languages 2nd edition Tucker and Noonan Chapter 2 Syntax A language that is simple to parse for the compiler is also simple to parse for the human programmer. N. Wirth Contents Grammars Backus-Naur Form Derivations Parse Trees Associativity and Precedence Ambiguous Grammars Extended BNF Syntax of a Small Language: Clite Lexical Syntax Concrete Syntax Compilers and Interpreters Linking Syntax and Semantics Abstract Syntax Abstract Syntax Trees Abstract Syntax of Clite Syntax of a Small Language: Clite Motivation for using a subset of C: Grammar Language (pages) Reference Pascal 5 Jensen & Wirth C 6 Kernighan & Richie C++ 22 Stroustrup Java 14 Gosling, et. al. The Clite grammar fits on one page (next 3 slides), so it’s a far better tool for studying language design. Fig. Clite Grammar: Statements Program int main ( ) { Declarations Statements } Declarations { Declaration } Declaration Type Identifier [ [ Integer ] ] { , Identifier [ [ Integer ] ] } Type int | bool | float | char Statements { Statement } Statement ; | Block | Assignment | IfStatement | WhileStatement Block { Statements } Assignment Identifier [ [ Expression ] ] = Expression ; IfStatement if ( Expression ) Statement [ else Statement ] WhileStatement while ( Expression ) Statement Fig. Clite Grammar: Expressions Expression Conjunction { || Conjunction } Conjunction Equality { && Equality } Equality Relation [ EquOp Relation ] EquOp == | != Relation Addition [ RelOp Addition ] RelOp | >= Addition Term { AddOp Term } AddOp + | - Term Factor { MulOp Factor } MulOp * | / | % Factor [ UnaryOp ] Primary UnaryOp - | ! Primary Identifier [ [ Expression ] ] | Literal | ( Expression ) | Type ( Expression ) Fig. Clite grammar: lexical level Identifier Letter { Letter | Digit } Letter a | b | | z | A | B | | Z Digit 0 | 1 | | 9 Literal . | Programming Languages 2nd edition Tucker and Noonan Chapter 2 Syntax A language that is simple to parse for the compiler is also simple to parse for the human programmer. N. Wirth Contents Grammars Backus-Naur Form Derivations Parse Trees Associativity and Precedence Ambiguous Grammars Extended BNF Syntax of a Small Language: Clite Lexical Syntax Concrete Syntax Compilers and Interpreters Linking Syntax and Semantics Abstract Syntax Abstract Syntax Trees Abstract Syntax of Clite Syntax of a Small Language: Clite Motivation for using a subset of C: Grammar Language (pages) Reference Pascal 5 Jensen & Wirth C 6 Kernighan & Richie C++ 22 Stroustrup Java 14 Gosling, et. al. The Clite grammar fits on one page (next 3 slides), so it’s a far better tool for studying language design. Fig. Clite Grammar: Statements Program int main ( ) { Declarations Statements } Declarations { Declaration } Declaration

crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.