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
© Copyright 2026 Paperzz