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

Slides:



Advertisements
Similar presentations
ICE1341 Programming Languages Spring 2005 Lecture #5 Lecture #5 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Advertisements

ISBN Chapter 3 Describing Syntax and Semantics.
Describing Syntax and Semantics
Concepts of Programming Languages 1 Describing Syntax and Semantics Brahim Hnich Högskola I Gävle
ISBN Chapter 3 More Syntax –BNF –Derivations –Practice.
CS 330 Programming Languages 09 / 13 / 2007 Instructor: Michael Eckmann.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
Fall 2007CS 2251 Miscellaneous Topics Deque Recursion and Grammars.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
1 CSE305 Programming Languages Syntax What is it? How is it specified? Who uses it? Why is it needed?
ISBN Chapter 3 Describing Syntax and Semantics.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
1 Introduction: syntax and semantics Syntax: a formal description of the structure of programs in a given language. Semantics: a formal description of.
Dr. Muhammed Al-Mulhem 1ICS ICS 535 Design and Implementation of Programming Languages Part 1 Fundamentals (Chapter 4) Compilers and Syntax.
Chapter 3: Formal Translation Models
ISBN Chapter 3 Describing Syntax and Semantics.
ISBN Chapter 3 Describing Syntax and Semantics.
(2.1) Grammars  Definitions  Grammars  Backus-Naur Form  Derivation – terminology – trees  Grammars and ambiguity  Simple example  Grammar hierarchies.
Describing Syntax and Semantics
1 Syntax and Semantics The Purpose of Syntax Problem of Describing Syntax Formal Methods of Describing Syntax Derivations and Parse Trees Sebesta Chapter.
Chpater 3. Outline The definition of Syntax The Definition of Semantic Most Common Methods of Describing Syntax.
ISBN Chapter 3 Describing Syntax and Semantics.
Describing Syntax and Semantics
CS 355 – PROGRAMMING LANGUAGES Dr. X. Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax.
Winter 2007SEG2101 Chapter 71 Chapter 7 Introduction to Languages and Compiler.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter 3 Syntax - the form or structure of the expressions, statements, and program units Semantics.
1 Chapter 3 Describing Syntax and Semantics. 3.1 Introduction Providing a concise yet understandable description of a programming language is difficult.
ISBN Chapter 3 Describing Syntax and Semantics.
CS Describing Syntax CS 3360 Spring 2012 Sec Adapted from Addison Wesley’s lecture notes (Copyright © 2004 Pearson Addison Wesley)
Grammars CPSC 5135.
Chapter Describing Syntax and Semantics. Chapter 3 Topics 1-2 Introduction The General Problem of Describing Syntax Formal Methods of Describing.
Chapter 3 Part I Describing Syntax and Semantics.
3-1 Chapter 3: Describing Syntax and Semantics Introduction Terminology Formal Methods of Describing Syntax Attribute Grammars – Static Semantics Describing.
C H A P T E R TWO Syntax and Semantic.
ISBN Chapter 3 Describing Syntax and Semantics.
ISBN Chapter 3 Describing Syntax and Semantics.
Course: ICS313 Fundamentals of Programming Languages. Instructor: Abdul Wahid Wali Lecturer, College of Computer Science and Engineering.
TextBook Concepts of Programming Languages, Robert W. Sebesta, (10th edition), Addison-Wesley Publishing Company CSCI18 - Concepts of Programming languages.
Describing Syntax and Semantics
1 Syntax In Text: Chapter 3. 2 Chapter 3: Syntax and Semantics Outline Syntax: Recognizer vs. generator BNF EBNF.
Muhammad Idrees Lecturer University of Lahore 1. Outline Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute.
The College of Saint Rose CIS 433 – Programming Languages David Goldschmidt, Ph.D. from Concepts of Programming Languages, 9th edition by Robert W. Sebesta,
ISBN Chapter 3 Describing Syntax and Semantics.
Chapter 3 Describing Syntax and Semantics. Copyright © 2012 Addison-Wesley. All rights reserved. 1-2 Chapter 3 Topics Introduction The General Problem.
Chapter 3 Describing Syntax and Semantics. Chapter 3: Describing Syntax and Semantics - Introduction - The General Problem of Describing Syntax - Formal.
C HAPTER 3 Describing Syntax and Semantics. T OPICS Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute.
Copyright © 2006 Addison-Wesley. All rights reserved. Ambiguity in Grammars A grammar is ambiguous if and only if it generates a sentential form that has.
Chapter 3 Describing Syntax and Semantics
CCSB 314 Programming Language Department of Software Engineering College of IT Universiti Tenaga Nasional Chapter 3 Describing Syntax and Semantics.
Chapter 3 © 2002 by Addison Wesley Longman, Inc Introduction - Who must use language definitions? 1. Other language designers 2. Implementors 3.
Describing Syntax and Semantics Session 2 Course : T Programming Language Concept Year : February 2011.
Chapter 3 Describing Syntax and Semantics. Copyright © 2012 Addison-Wesley. All rights reserved.1-2 Chapter 3 Topics Introduction The General Problem.
ISBN Chapter 3 Describing Syntax and Semantics.
C H A P T E R T W O Syntax and Semantic. 2 Introduction Who must use language definitions? Other language designers Implementors Programmers (the users.
1 CS Programming Languages Class 04 September 5, 2000.
Lecture 3 Concepts of Programming Languages Arne Kutzner Hanyang University / Seoul Korea.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Syntax.
Chapter 3 – Describing Syntax CSCE 343. Syntax vs. Semantics Syntax: The form or structure of the expressions, statements, and program units. Semantics:
Describing Syntax and Semantics Chapter 3: Describing Syntax and Semantics Lectures # 6.
Chapter 3: Describing Syntax and Semantics
Chapter 3 – Describing Syntax
Describing Syntax and Semantics
Describing Syntax and Semantics
Chapter 3 – Describing Syntax
Concepts of Programming Languages
Describing Syntax and Semantics
Describing Syntax and Semantics
Chapter 3 Describing Syntax and Semantics.
Describing Syntax and Semantics
Presentation transcript:

ISBN Chapter 3 Describing Syntax and Semantics

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)

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

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)

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

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

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

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

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,

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

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

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

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

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

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

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

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

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

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

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

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

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}

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

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

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

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

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)

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

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

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

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}