Syntax - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Syntax

Description:

The written representation is different, but the abstract syntax is the same ... attribute value at a node : attributes at the children of the node (its subtree) ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 32
Provided by: suchitraa
Category:
Tags: attribute | syntax

less

Transcript and Presenter's Notes

Title: Syntax


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 --gtsyntax01/02/2001 --gtUS
    Jan 2, 2001 Others Feb 1, 2001
  • Same syntax, different semantic

3
Organization of Language Description
  • Tutorials
  • Reference Manuals
  • Formal Definition

4
Tutorials
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

5
Reference 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

6
Formal 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

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 (ltexprgt) ltstatementgt
  • if ltexprgt then ltstatementgt

9
Lexical 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

10
Context-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

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
  • ltnonterminal gt terminal ltnonterminal gt
  • 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
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 )

14
EBNF 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

15
Syntax Chart arithmetic expressions
The Way of Writing Grammars
expression
term

-
term
factor

/
factor
expression
)
(
name
number
16
Parse Tree respect to arithmetic expressions
The Way of Writing Grammars
  • number7 number7 - number4 number2 number3

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 23
  • Point of view Semantic
  • An expression evaluator its value 5
  • A type checker type integer
  • An infix-to-postfix translator string 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 ab depend on
    the environment.
  • An environment consists of bindings from variable
    to values.

23
Semantic 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
24
Synthesized 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

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
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

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
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

29
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 v1 E2 v2 (sum)plus E1 E2 v1 v2

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 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)
Write a Comment
User Comments (0)
About PowerShow.com