Presentation is loading. Please wait.

Presentation is loading. Please wait.

ISBN 0-321-49362-1 Chapter 3 Describing Syntax and Semantics.

Similar presentations


Presentation on theme: "ISBN 0-321-49362-1 Chapter 3 Describing Syntax and Semantics."— Presentation transcript:

1 ISBN 0-321-49362-1 Chapter 3 Describing Syntax and Semantics

2 Copyright © 2009 Addison-Wesley. All rights reserved.3-2 Introduction Syntax: the form or structure of the expressions, statements, and program units Semantics: the meaning of the expressions, statements, and program units Syntax and semantics together provide a language’s definition – Users of a language definition Other language designers Implementers Programmers (the users of the language)

3 Language Theory Chomsky identified four classes of language Types 2 and 3 useful for programming language specification Backus (on ALGOL58 committee) developed notation for specifying programming languages Copyright © 2009 Addison-Wesley. All rights reserved.3-3 TypeCharacteristics 0Unrestricted 1Context-sensitive 2Context-free 3Regular

4 Copyright © 2009 Addison-Wesley. All rights reserved.3-4 The General Problem of Describing Syntax: Terminology A sentence is a string of characters over some alphabet A language is a set of sentences A lexeme is the lowest level syntactic unit of a language (e.g., *, sum, begin ) A token is a category of lexemes (e.g., identifier)

5 Copyright © 2009 Addison-Wesley. All rights reserved.3-5 Formal Definition of Languages Recognizers –A recognition device reads input strings over the alphabet of the language and decides whether the input strings belong to the language –Example: syntax analysis part of a compiler - Detailed discussion of syntax analysis appears in Chapter 4 Generators –A device that generates sentences of a language –One can determine if the syntax of a particular sentence is syntactically correct by comparing it to the structure of the generator

6 Copyright © 2009 Addison-Wesley. All rights reserved.3-6 BNF and Context-Free Grammars Context-Free Grammars –Developed by Noam Chomsky in the mid-1950s –Language generators, meant to describe the syntax of natural languages –Define a class of languages called context-free languages Backus-Naur Form (1959) –Invented by John Backus to describe Algol 58 –BNF is equivalent to context-free grammars

7 Copyright © 2009 Addison-Wesley. All rights reserved.3-7 Defining a Language A language consists of sentences made up from the characters that belong to some alphabet Grammar: a finite non-empty set of rules –The grammar of a language determines what sentences belong to that language. –Use BNF to express the rules A start symbol is a special element of the nonterminals of a grammar –All valid sentences in the language can be derived from the start symbol

8 Copyright © 2009 Addison-Wesley. All rights reserved.3-8 BNF Fundamentals In BNF, abstractions are used to represent classes of syntactic structures--they act like syntactic variables (also called nonterminal symbols, or just nonterminals) Terminals are lexemes or tokens A rule has a left-hand side (LHS), which is a nonterminal, and a right-hand side (RHS), which is a string of terminals and/or nonterminals Nonterminals are often enclosed in angle brackets

9 Copyright © 2009 Addison-Wesley. All rights reserved.3-9 Examples of BNF rules A simple rule → if then An abstraction (or nonterminal symbol) can have more than one RHS  | begin end Rules can be recursive → identifier | identifier,

10 Recursive Rules and Lists Syntactic lists are described using recursion -> |, -> |, -> |, -> | Copyright © 2009 Addison-Wesley. All rights reserved.3-10

11 Copyright © 2009 Addison-Wesley. All rights reserved.3-11 An Example Grammar Here is a grammar for a small language   | ;  =  a | b | c | d  + | -  | const is the start symbol

12 Copyright © 2009 Addison-Wesley. All rights reserved.3-12 Derivations A derivation is a repeated application of rules, starting with the start symbol and ending with a sentence (all terminal symbols) BNF is a generator –Use the grammar to generate sentences that belong to the language described by that grammar

13 Copyright © 2009 Addison-Wesley. All rights reserved.3-13 Derivations Every string of symbols in a derivation is a sentential form A sentence is a sentential form that has only terminal symbols A leftmost derivation is one in which the leftmost nonterminal in each sentential form is the one that is expanded A derivation may be neither leftmost nor rightmost

14 Copyright © 2009 Addison-Wesley. All rights reserved.3-14 An Example Grammar Here is a grammar for a small language   | ;  =  a | b | c | d  + | -  | const is the start symbol

15 Copyright © 2009 Addison-Wesley. All rights reserved.3-15 An Example Derivation => => => = => a = => a = + => a = b + => a = b + const

16 Copyright © 2009 Addison-Wesley. All rights reserved.3-16 Parse Tree A hierarchical representation of a derivation const a = b +

17 Consider this rule ::= | … ::= if then | if then else What is the parse tree for if p then if q then stmt2 else stmt3 Copyright © 2009 Addison-Wesley. All rights reserved.3-17

18 Copyright © 2009 Addison-Wesley. All rights reserved.3-18 Ambiguity in Grammars A grammar is ambiguous if and only if it generates a sentential form that has two or more distinct parse trees

19 Copyright © 2009 Addison-Wesley. All rights reserved.3-19 An Ambiguous Expression Grammar  | const  / | - const --/ /

20 Copyright © 2009 Addison-Wesley. All rights reserved.3-20 An Unambiguous Expression Grammar If we use the parse tree to indicate precedence levels of the operators, we cannot have ambiguity  - |  / const| const const / -

21 Copyright © 2009 Addison-Wesley. All rights reserved.3-21 Associativity of Operators Operator associativity can also be indicated by a grammar -> + | const (ambiguous) -> + const | const (unambiguous) const + +

22 Copyright © 2009 Addison-Wesley. All rights reserved.3-22 Extended BNF Optional parts are placed in brackets [ ] -> ident [( )] Alternative parts of RHSs are placed inside parentheses and separated via vertical bars → (+|-) const Repetitions (0 or more) are placed inside braces { } → letter {letter|digit}

23 Copyright © 2009 Addison-Wesley. All rights reserved.3-23 BNF and EBNF BNF  + | - |  * | / | EBNF  {(+ | -) }  {(* | /) }

24 Copyright © 2009 Addison-Wesley. All rights reserved.3-24 Recent Variations in EBNF Alternative RHSs are put on separate lines Use of a colon instead of => Use of opt for optional parts Use of oneof for choices

25 Sample Grammar ::= [, ] | ::= | ( ) ::= x|y|z Copyright © 2009 Addison-Wesley. All rights reserved.3-25

26 Monkey Language -> b | d -> a -> | | a | a -> | -> | # Which are valid? ba#ababadada#bad#dabbada abdabaadab#ada dad#ad#abaadad#badadbaad Copyright © 2009 Addison-Wesley. All rights reserved.3-26

27 Copyright © 2009 Addison-Wesley. All rights reserved.3-27 Static Semantics Nothing to do with meaning Context-free grammars (CFGs) cannot describe all of the syntax of programming languages Categories of constructs that are trouble: - Context-free, but cumbersome (e.g., types of operands in expressions) - Non-context-free (e.g., variables must be declared before they are used)

28 Dynamic Semantics Describe the meaning of programs –English language descriptions neither precise nor complete "Holy Grail" to be able to prove a program correct –No universal notation for semantics –Operational semantics –Axiomatic semantics –Denotational semantics Copyright © 2009 Addison-Wesley. All rights reserved.3-28

29 Axiomatic Semantics Based on mathematical logic Assertions are attached to program statements describing constraints on variable at that point in program Postcondition assertions describe result of the statement Precondition assertions describe state before statement is executed Can derive the weakest precondition that guarantees a particular postcondition Copyright © 2009 Addison-Wesley. All rights reserved.3-29

30 Copyright © 2009 Addison-Wesley. All rights reserved.3-30 Axiomatic Semantics (continued) An assertion before a statement (a precondition) states the relationships and constraints among variables that are true at that point in execution An assertion following a statement is a postcondition A weakest precondition is the least restrictive precondition that will guarantee the postcondition

31 Copyright © 2009 Addison-Wesley. All rights reserved.3-31 Axiomatic Semantics Form Pre-, post form: {P} statement {Q} An example –a = b + 1 {a > 1} –One possible precondition: {b > 10} –Weakest precondition: {b > 0}


Download ppt "ISBN 0-321-49362-1 Chapter 3 Describing Syntax and Semantics."

Similar presentations


Ads by Google