Title: Syntax
1Syntax Semantic
- Introduction
- Organization of Language Description
- Abstract Syntax
- Formal Syntax
- The Way of Writing Grammars
- Formal Semantic
2Introduction
- 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 --gtsyntax01/02/2001 --gtUS
Jan 2, 2001 Others Feb 1, 2001 - Same syntax, different semantic
3Organization of Language Description
- Tutorials
- Reference Manuals
- Formal Definition
4Tutorials
Organization of Language Description
- 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
5Reference Manuals
Organization of Language Description
- 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
6Formal Definition
Organization of Language Description
- 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
7Abstract 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
8Formal 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 (ltexprgt) ltstatementgt
- if ltexprgt then ltstatementgt
9Lexical syntax
Formal 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
10Context-Free Grammars
Formal Syntax
- 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
11Context-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 - ltnonterminal gt terminal ltnonterminal gt
- A starting nonterminal represents a main
construct
12The 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
13BNF arithmetic expressions
The Way of Writing Grammars
- ltexpression gt ltexpression gtltterm gt
- ltexpression gt- ltterm gt
- ltterm gt
- ltterm gt ltterm gt ltfactor gt
- ltterm gt/ ltfactor gt
- ltfactor gt
- ltfactor gt number
- name
- ( ltexpression gt )
14EBNF arithmetic expressions
The Way of Writing Grammars
- ltexpression gt ltterm gt ( - ) ltterm gt
- ltterm gt ltfactor gt ( / ) ltfactor gt
- ltfactor gt ( ltexpression gt )
- name
- number
15Syntax Chart arithmetic expressions
The Way of Writing Grammars
expression
term
-
term
factor
/
factor
expression
)
(
name
number
16Parse Tree respect to arithmetic expressions
The Way of Writing Grammars
- number7 number7 - number4 number2 number3
17Assignment
- 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 )
18Assignment (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
19Assignment (cont.)
- Write the following grammar in Pascal or C or
Java by using BNF or EBNF or syntax chart - program (heading)
- statement
- identifier
- variable
20Formal 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
21Semantics or meaning
- Semantic any property of a construct
- The semantic of an expression 23
- Point of view Semantic
- An expression evaluator its value 5
- A type checker type integer
- An infix-to-postfix translator string 2 3
22Semantic Methods
- Several method for defining semantics
- The approaches are used for different purposes by
different communities. - The values of variables a and b in ab depend on
the environment. - An environment consists of bindings from variable
to values.
23Semantic Methods (cont.)
Formal semantics
- Informal semantics
- Synthesized attributes
- Attribute grammars
- Natural semantics
- Operational semantics
- Denotational semantics
- Axiomatic semantics (or proof rules)
Static semantic Dynamic semantic
24Synthesized Attributes
Semantic Methods
- 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
25Synthesized 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)
26Attribute Grammars
Semantic Methods
- 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
27Attribute 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.
28Natural Semantics
Semantic Methods
- 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
29Natural Semantics (cont.)
- Each rule has a name.
- Conditions appear above a line.
- The conclusion appears below the line.
- E num(val) plus E1 E2 times
E1 E2 - E1 v1 E2 v2 (sum)plus E1 E2 v1 v2
30Natural 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
31Natural Semantics (cont.)
- The empty envi. nil bind no variables.
- env E vIn envi. env, expression E has
value v. - env E1 v1 env E2 v2 (sum)
env plus E1 E2 v1 v2 - env x lookup(x,env)In envi. env, variable
x has value lookup(x,env)