Syntax & Semantic

advertisement
Syntax & Semantic
Introduction
 Organization of Language Description
 Abstract Syntax
 Formal Syntax
 The Way of Writing Grammars
 Formal Semantic

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

Organization of Language
Description
Tutorials
 Reference Manuals
 Formal Definition

Organization of Language Description
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
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
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

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

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 (<expr>) <statement>

Formal Syntax
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
Formal Syntax
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

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

• <nonterminal >::= terminal | <nonterminal >

A starting nonterminal : represents a main
construct
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
The Way of Writing Grammars
BNF : arithmetic expressions
<expression > ::= <expression >+<term >
| <expression >- <term >
| <term >
<term >
::= <term >* <factor >
| <term >/ <factor >
| <factor >
<factor >
::= number
| name
| ‘(’ <expression > ‘)’
The Way of Writing Grammars
EBNF : arithmetic expressions
<expression > ::= <term > { ( +|- ) <term > }
<term >
::= <factor > { ( *|/ ) <factor >}
<factor >
::= ‘(’ <expression > ‘)’
|name
|number
The Way of Writing Grammars
Syntax Chart : arithmetic expressions
expression
term
+
term
factor
*
/
factor
(
expression
name
number
)
The Way of Writing Grammars
Parse Tree : respect to arithmetic
expressions
number7 * number7 - number4 * number2 *
number3
Expression
Expression
Term
Term
*
factor
number7
-
Term
Term
factor
number7
Term *
factor
number4
*
factor
factor number3
number2
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)

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
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

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

Semantics or meaning
Semantic : any property of a construct
 The semantic of an expression 2+3

Point of view
Semantic
An expression evaluator
its value
:5
A type checker
type integer
An infix-to-postfix translator string: + 2 3
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.

Semantic Methods (cont.)
Informal semantics
 Synthesized attributes
 Attribute grammars
 Natural semantics
 Operational semantics
 Denotational semantics
 Axiomatic semantics
(or proof rules)

Formal semantics
Static semantic
Dynamic semantic
Semantic Methods
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

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)

Semantic Methods
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

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.

Semantic Methods
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

Natural 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 : v 1
E2 : v2
plus E1 E2 : v1 +v2
(sum)
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

Natural Semantics (cont.)
The empty envi. nil bind no variables.
 env
E:v
“In 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
Download