Presentation is loading. Please wait.

Presentation is loading. Please wait.

Syntax & Semantic Introduction Organization of Language Description Abstract Syntax Formal Syntax The Way of Writing Grammars Formal Semantic.

Similar presentations


Presentation on theme: "Syntax & Semantic Introduction Organization of Language Description Abstract Syntax Formal Syntax The Way of Writing Grammars Formal Semantic."— Presentation transcript:

1 Syntax & Semantic Introduction Organization of Language Description Abstract Syntax Formal Syntax The Way of Writing Grammars Formal Semantic

2 Introduction Language Description : syntax and semantic Syntax : how program in language are built up Semantic : what program mean Dates represented by D (digit) and Symbol (/) DD/DD/DDDD -->syntax 01/02/2001 -->US = Jan 2, 2001 Others = Feb 1, 2001 Same syntax, different semantic

3 Organization of Language Description Tutorials Reference Manuals Formal Definition

4 Tutorials What the main constructs of the language are How they are meant to be used Useful examples for imitating and adapting Introduce syntax and semantics gradually Organization of Language Description

5 Reference Manuals Describing the syntax and semantics Organized around the syntax Formal syntax and informal semantic Informal semantic : English explanations and examples to the syntactic rules Began with the Algol60 : free of ambiguities Organization of Language Description

6 Formal Definition Precise description of the syntax and semantics Aimed at specialists Attaches semantic rules to the syntax Conflicting interpretations from English explanation Precise formal notation for clarifying subtle point Organization of Language Description

7 Abstract Syntax Capture intent, independent of notation Intent : apply operator +to operands a and b a + b + (+ a b) a b ADD a TO b The written representation is different, but the abstract syntax is the same identifies the meaningful components of each construct

8 Formal Syntax Consists of two layers a lexical layer a grammar layer Lexical syntax : the spelling of words Grammars : the key formalism for describing syntax ; universal programming language Example if ( ) if then

9 Lexical syntax Tokens/Terminals : units in programming language Lexical syntax : correspondence between the written representation (spelling) and the tokens or terminals in a grammar Keywords : alphabetic character sequences ; unit in a language - if, while Reserved words : keyword that can not be used as names Formal Syntax

10 Context-Free Grammars Concrete syntax : describes its written representation, including lexical details such as the placement of keywords and punctuation marks Context-free grammar or grammars : notation for specifying concrete syntax Formal Syntax

11 Context-Free Grammars (cont.) Grammar has four parts A set of tokens or terminals : atomic symbols A set of nonterminals : variable representing construct A set of rules (called productions) : identify the component of construct ::= terminal | A starting nonterminal : represents a main construct

12 The Way of Writing Grammars The productions are rules for building string Parse Trees : show how a string can be built Notation to write grammar Backus-Naur Form (BNF) Extended BNF (EBNF) Syntax charts : graphical notation

13 BNF : arithmetic expressions ::= + | - | ::= * | / | ::= number | name | ‘(’ ‘)’ The Way of Writing Grammars

14 EBNF : arithmetic expressions ::= { ( +|- ) } ::= { ( *|/ ) } ::= ‘(’ ‘)’ |name |number The Way of Writing Grammars

15 Syntax Chart : arithmetic expressions The Way of Writing Grammars expression + - term * / factor name number expression factor term ( )

16 Parse Tree : respect to arithmetic expressions number 7 * number 7 - number 4 * number 2 * number 3 Expression Term factor number 7 number 4 number 2 number 3 - * * * The Way of Writing Grammars

17 Assignment Draw a parse tree with respect to the BNF grammar for arithmetic expression 2 + 3 ( 2 + 3 ) 2 + 3 * 5 ( 2 + 3 ) * 5 2 + ( 3 * 5 )

18 Assignment (cont.) Draw parse trees using the following grammar S ::= id := expr | if expr then S | if expr then S else S | while expr do s | begin SL end SL ::= S ; S ; SL a. while expr do id := expr b. begin id := expr end c. if expr then if expr then S else S

19 Assignment (cont.) Write the following grammar in Pascal or C or Java by using BNF or EBNF or syntax chart program (heading) statement identifier variable

20 Formal Semantic Static semantic : “compile-time” properties - type correctness, translation - determined from the static text of a program, without running the program on actual data. Dynamic semantic : “run-time” properties - value of expression - the effect of statement - determined by actually doing a computation

21 Semantics or meaning Semantic : any property of a construct The semantic of an expression 2+3 Point of view Semantic An expression evaluatorits value : 5 A type checkertype integer An infix-to-postfix translatorstring: + 2 3

22 Semantic Methods Several method for defining semantics The approaches are used for different purposes by different communities. The values of variables a and b in a+b depend on the environment. An environment consists of bindings from variable to values.

23 Static semantic Dynamic semantic Semantic Methods (cont.) Informal semantics Synthesized attributes Attribute grammars Natural semantics Operational semantics Denotational semantics Axiomatic semantics (or proof rules) Formal semantics

24 Synthesized Attributes Synthesize the meaning of a construct from that of its components The semantic of a construct : any quantities associated with the construct attribute : a quantity associated with a construct X.a : attribute a of X (nonterminal/terminal) E.val : attribute val of Expression E Semantic Methods

25 Synthesized Attributes (cont.) To define the meaning of a construct Attribute : attach to grammar symbols Semantic rules : attach to production Synthesized attribute N.a : semantic rules attach to productions with N on the left side Evaluation order information flows bottom-up in a parse tree attribute value at a node : attributes at the children of the node (its subtree)

26 Attribute Grammars A generalization of synthesized attributes The meaning of a construct depend on the surrounding context. Attribute values can flow up and down a parse tree. The meaning at a node depend on information from the rest of the tree Semantic Methods

27 Attribute Grammars (cont.) To define the meaning of a construct Attribute : attach to grammar symbols, each attribute designate synthesized or inherited Semantic rules : attach to productions. If nonterminal N appears on the left side of production, attach semantic rules defining the synthesized attribute of N. If nonterminal A appears on the right side of production, attach semantic rules defining the inherited attribute of A.

28 Natural Semantics Associated logical rules with the syntax. The logical rules use to deduce the meaning of a construct. Abstract syntax num(val) for numbers num is a token and val is its associated value axioms : rules without conditions E : v refers to expression E has value v Semantic Methods

29 Natural Semantics (cont.) Each rule has a name. Conditions appear above a line. The conclusion appears below the line. E ::= num(val) | plus E 1 E 2 | times E 1 E 2 E 1 : v 1 E 2 : v 2 (sum) plus E 1 E 2 : v 1 +v 2

30 Natural Semantics (cont.) The value of an expression depend on the values of the variable. Environments : handle variable by binding names to values Environment : object with two operations bind(x,v,env) : a new envi. that binds variable x to value v; the binding of all other variables are as in the envi. env lookup(x,env) : the value bound to x in envi env

31 Natural Semantics (cont.) The empty envi. nil bind no variables. env E : v “In envi. env, expression E has value v.” env E 1 : v 1 env E 2 : v 2 (sum) env plus E 1 E 2 : v 1 +v 2 env x : lookup(x,env) “In envi. env, variable x has value lookup(x,env)”


Download ppt "Syntax & Semantic Introduction Organization of Language Description Abstract Syntax Formal Syntax The Way of Writing Grammars Formal Semantic."

Similar presentations


Ads by Google