Presentation is loading. Please wait.

Presentation is loading. Please wait.

ISBN 0-321-33025-0 Chapter 3 Describing Syntax and Semantics.

Similar presentations


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

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

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

3 Copyright © 2006 Addison-Wesley. All rights reserved.1-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 TypeCharacteristics 0Unrestricted 1Context-sensitive 2Context-free 3Regular

4 Copyright © 2006 Addison-Wesley. All rights reserved.1-4 Terminology A metalanguage is a language used to describe another language A sentence is a string of characters over some alphabet A language is a set of sentences –a language is specified by a set of rules 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 © 2006 Addison-Wesley. All rights reserved.1-5 Two approaches to Language Definition Recognizers –Read a string and decide whether it follows the rules for the language –Example: syntax analysis part of a compiler (Chapter 4) Generators –A device that generates sentences of a language (BNF) –More useful for specifying the language than for checking a string

6 Copyright © 2006 Addison-Wesley. All rights reserved.1-6 Formal Methods of Describing Syntax Backus-Naur Form and Context-Free Grammars –Most widely known method for describing programming language syntax –Developed as part of the process for specifying ALGOL –Define a class of languages called context- free languages Extended BNF –Improves readability and writability of BNF

7 Copyright © 2006 Addison-Wesley. All rights reserved.1-7 BNF Fundamentals Non-terminals: BNF abstractions used to represent classes of syntactic structures Terminals: lexemes and tokens Grammar: a collection of rules –Examples of BNF rules: → identifier | identifier, → if then

8 Copyright © 2006 Addison-Wesley. All rights reserved.1-8 BNF Rules A rule has a left-hand side (LHS) and a right-hand side (RHS), and consists of terminal and nonterminal symbols In a context-free grammar, there can only be one symbol on the LHS A grammar is a finite nonempty set of rules An abstraction (or nonterminal symbol) can have more than one RHS  | begin end

9 Copyright © 2006 Addison-Wesley. All rights reserved.1-9 Derivations BNF is a generative device –Use a grammar to generate sentences that belong to the language the grammar describes A derivation is a repeated application of rules, starting with the start symbol and ending with a sentence (all terminal symbols)

10 Copyright © 2006 Addison-Wesley. All rights reserved.1-10 Examples : Describing Lists Syntactic lists are described using recursion -> |, -> |, -> | param, -> |

11 Copyright © 2006 Addison-Wesley. All rights reserved.1-11 An Example Grammar -> -> | ; -> = -> a | b | c | d -> + | - -> | const

12 Copyright © 2006 Addison-Wesley. All rights reserved.1-12 Derivation Every string of symbols in the 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

13 Copyright © 2006 Addison-Wesley. All rights reserved.1-13 An Example Derivation => => => = => a = => a = + => a = b + => a = b + const

14 Copyright © 2006 Addison-Wesley. All rights reserved.1-14 Parse Tree A hierarchical representation of a derivation const a = b +

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

16 Copyright © 2006 Addison-Wesley. All rights reserved.1-16 An Ambiguous Expression Grammar  | const  / | - const --//

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

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

19 Copyright © 2006 Addison-Wesley. All rights reserved.1-19 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}

20 Copyright © 2006 Addison-Wesley. All rights reserved.1-20 BNF and EBNF BNF  + | - |  * | / | EBNF  {(+ | -) }  {(* | /) }


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

Similar presentations


Ads by Google