Soumettre la recherche
Mettre en ligne
ch02c.pdf
•
0 j'aime
•
1 vue
Y
yash32148
Suivre
Programming Languages pantnagar notes
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 18
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Introduction of C++ By Pawan Thakur
Introduction of C++ By Pawan Thakur
Govt. P.G. College Dharamshala
3.5
3.5
Samimvez
Tech Days Paris Intoduction F# and Collective Intelligence
Tech Days Paris Intoduction F# and Collective Intelligence
Robert Pickering
Combinators, DSLs, HTML and F#
Combinators, DSLs, HTML and F#
Robert Pickering
Bb Tequila Coding Style (Draft)
Bb Tequila Coding Style (Draft)
Siwawong Wuttipongprasert
Generics Tutorial
Generics Tutorial
wasntgosu
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009
Martin Odersky
Meta Languages Railroad Diagrams
Meta Languages Railroad Diagrams
Kelly Bauer
Recommandé
Introduction of C++ By Pawan Thakur
Introduction of C++ By Pawan Thakur
Govt. P.G. College Dharamshala
3.5
3.5
Samimvez
Tech Days Paris Intoduction F# and Collective Intelligence
Tech Days Paris Intoduction F# and Collective Intelligence
Robert Pickering
Combinators, DSLs, HTML and F#
Combinators, DSLs, HTML and F#
Robert Pickering
Bb Tequila Coding Style (Draft)
Bb Tequila Coding Style (Draft)
Siwawong Wuttipongprasert
Generics Tutorial
Generics Tutorial
wasntgosu
Scala Talk at FOSDEM 2009
Scala Talk at FOSDEM 2009
Martin Odersky
Meta Languages Railroad Diagrams
Meta Languages Railroad Diagrams
Kelly Bauer
Preparing for Scala 3
Preparing for Scala 3
Martin Odersky
Meta Languages Railroad Diagrams Student Version
Meta Languages Railroad Diagrams Student Version
Kelly Bauer
117 A Outline 25
117 A Outline 25
wasntgosu
Generics Tutorial
Generics Tutorial
wasntgosu
copa-ii.pptx
copa-ii.pptx
ERHariramPrajapat
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
Guillaume Laforge
AspectC++: Language Proposal and Prototype Implementation
AspectC++: Language Proposal and Prototype Implementation
dinomasch
How a Compiler Works ?
How a Compiler Works ?
Hirdesh Vishwdewa
What's in a Name?
What's in a Name?
Kevlin Henney
Bcsl 031 solve assignment
Bcsl 031 solve assignment
Indira Gnadhi National Open University (IGNOU)
Aspect-oriented programming in Perl
Aspect-oriented programming in Perl
megakott
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
JavaScript.pptx
JavaScript.pptx
Govardhan Bhavani
Getting started with c++
Getting started with c++
Bussines man badhrinadh
Getting started with c++
Getting started with c++
K Durga Prasad
Cs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer Key
appasami
C++ book
C++ book
mailmerk
Regular expressions
Regular expressions
Raghu nath
Introduction to Laws
Introduction to Laws
nkpart
15-Minute City: A Completely New Horizon
15-Minute City: A Completely New Horizon
Morshed Ahmed Rahath
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
MohammadAliNayeem
Contenu connexe
Similaire à ch02c.pdf
Preparing for Scala 3
Preparing for Scala 3
Martin Odersky
Meta Languages Railroad Diagrams Student Version
Meta Languages Railroad Diagrams Student Version
Kelly Bauer
117 A Outline 25
117 A Outline 25
wasntgosu
Generics Tutorial
Generics Tutorial
wasntgosu
copa-ii.pptx
copa-ii.pptx
ERHariramPrajapat
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
Guillaume Laforge
AspectC++: Language Proposal and Prototype Implementation
AspectC++: Language Proposal and Prototype Implementation
dinomasch
How a Compiler Works ?
How a Compiler Works ?
Hirdesh Vishwdewa
What's in a Name?
What's in a Name?
Kevlin Henney
Bcsl 031 solve assignment
Bcsl 031 solve assignment
Indira Gnadhi National Open University (IGNOU)
Aspect-oriented programming in Perl
Aspect-oriented programming in Perl
megakott
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
JavaScript.pptx
JavaScript.pptx
Govardhan Bhavani
Getting started with c++
Getting started with c++
Bussines man badhrinadh
Getting started with c++
Getting started with c++
K Durga Prasad
Cs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer Key
appasami
C++ book
C++ book
mailmerk
Regular expressions
Regular expressions
Raghu nath
Introduction to Laws
Introduction to Laws
nkpart
Similaire à ch02c.pdf
(20)
Preparing for Scala 3
Preparing for Scala 3
Meta Languages Railroad Diagrams Student Version
Meta Languages Railroad Diagrams Student Version
117 A Outline 25
117 A Outline 25
Generics Tutorial
Generics Tutorial
copa-ii.pptx
copa-ii.pptx
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
AspectC++: Language Proposal and Prototype Implementation
AspectC++: Language Proposal and Prototype Implementation
How a Compiler Works ?
How a Compiler Works ?
What's in a Name?
What's in a Name?
Bcsl 031 solve assignment
Bcsl 031 solve assignment
Aspect-oriented programming in Perl
Aspect-oriented programming in Perl
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
JavaScript.pptx
JavaScript.pptx
Getting started with c++
Getting started with c++
Getting started with c++
Getting started with c++
Cs6660 compiler design may june 2016 Answer Key
Cs6660 compiler design may june 2016 Answer Key
C++ book
C++ book
Regular expressions
Regular expressions
Introduction to Laws
Introduction to Laws
Dernier
15-Minute City: A Completely New Horizon
15-Minute City: A Completely New Horizon
Morshed Ahmed Rahath
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
MohammadAliNayeem
Intelligent Agents, A discovery on How A Rational Agent Acts
Intelligent Agents, A discovery on How A Rational Agent Acts
Sheetal Jain
ROAD CONSTRUCTION PRESENTATION.PPTX.pptx
ROAD CONSTRUCTION PRESENTATION.PPTX.pptx
GagandeepKaur617299
Circuit Breaker arc phenomenon.pdf engineering
Circuit Breaker arc phenomenon.pdf engineering
KanchhaTamang
ANSI(ST)-III_Manufacturing-I_05052020.pdf
ANSI(ST)-III_Manufacturing-I_05052020.pdf
BertinKamsipa1
ChatGPT Prompt Engineering for project managers.pdf
ChatGPT Prompt Engineering for project managers.pdf
qasastareekh
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Dr.Costas Sachpazis
Theory for How to calculation capacitor bank
Theory for How to calculation capacitor bank
tawat puangthong
Dairy management system project report..pdf
Dairy management system project report..pdf
Kamal Acharya
Filters for Electromagnetic Compatibility Applications
Filters for Electromagnetic Compatibility Applications
Mathias Magdowski
Electrical shop management system project report.pdf
Electrical shop management system project report.pdf
Kamal Acharya
Quiz application system project report..pdf
Quiz application system project report..pdf
Kamal Acharya
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
Kamal Acharya
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Lovely Professional University
E-Commerce Shopping using MERN Stack where different modules are present
E-Commerce Shopping using MERN Stack where different modules are present
jatinraor66
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
ShivamTiwari995432
Artificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian Reasoning
hotman30312
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2
T.D. Shashikala
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DrGurudutt
Dernier
(20)
15-Minute City: A Completely New Horizon
15-Minute City: A Completely New Horizon
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Complex plane, Modulus, Argument, Graphical representation of a complex numbe...
Intelligent Agents, A discovery on How A Rational Agent Acts
Intelligent Agents, A discovery on How A Rational Agent Acts
ROAD CONSTRUCTION PRESENTATION.PPTX.pptx
ROAD CONSTRUCTION PRESENTATION.PPTX.pptx
Circuit Breaker arc phenomenon.pdf engineering
Circuit Breaker arc phenomenon.pdf engineering
ANSI(ST)-III_Manufacturing-I_05052020.pdf
ANSI(ST)-III_Manufacturing-I_05052020.pdf
ChatGPT Prompt Engineering for project managers.pdf
ChatGPT Prompt Engineering for project managers.pdf
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Theory for How to calculation capacitor bank
Theory for How to calculation capacitor bank
Dairy management system project report..pdf
Dairy management system project report..pdf
Filters for Electromagnetic Compatibility Applications
Filters for Electromagnetic Compatibility Applications
Electrical shop management system project report.pdf
Electrical shop management system project report.pdf
Quiz application system project report..pdf
Quiz application system project report..pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
E-Commerce Shopping using MERN Stack where different modules are present
E-Commerce Shopping using MERN Stack where different modules are present
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Fabrication Of Automatic Star Delta Starter Using Relay And GSM Module By Utk...
Artificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian Reasoning
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
DR PROF ING GURUDUTT SAHNI WIKIPEDIA.pdf
ch02c.pdf
1.
Copyright © 2006
The McGraw-Hill Companies, Inc. Programming Languages Tucker and Noonan Chapter 2 Syntax A language that is simple to parse for the compiler is also simple to parse for the human programmer. N. Wirth
2.
Copyright © 2006
The McGraw-Hill Companies, Inc. Contents 2.1 Grammars 2.1.1 Backus-Naur Form 2.1.2 Derivations 2.1.3 Parse Trees 2.1.4 Associativity and Precedence 2.1.5 Ambiguous Grammars 2.2 Extended BNF 2.3 Syntax of a Small Language: Clite 2.3.1 Lexical Syntax 2.3.2 Concrete Syntax 2.4 Compilers and Interpreters 2.5 Linking Syntax and Semantics 2.5.1 Abstract Syntax 2.5.2 Abstract Syntax Trees 2.5.3 Abstract Syntax of Clite
3.
Copyright © 2006
The McGraw-Hill Companies, Inc. 2.3 Syntax of a Small Language: Clite Motivation for using a subset of C: Grammar Language (pages) Reference Pascal 5 Jensen & Wirth C 6 Kernighan & Richie C++ 22 Stroustrup Java 14 Gosling, et. al. The Clite grammar fits on one page (next 3 slides), so it’s a far better tool for studying language design.
4.
Copyright © 2006
The McGraw-Hill Companies, Inc. Fig. 2.7 Clite Grammar: Statements Program → int main ( ) { Declarations Statements } Declarations → { Declaration } Declaration → Type Identifier [ [ Integer ] ] { , Identifier [ [ Integer ] ] } Type → int | bool | float | char Statements → { Statement } Statement → ; | Block | Assignment | IfStatement | WhileStatement Block → { Statements } Assignment → Identifier [ [ Expression ] ] = Expression ; IfStatement → if ( Expression ) Statement [ else Statement ] WhileStatement → while ( Expression ) Statement
5.
Copyright © 2006
The McGraw-Hill Companies, Inc. Fig. 2.7 Clite Grammar: Expressions Expression → Conjunction { || Conjunction } Conjunction → Equality { && Equality } Equality → Relation [ EquOp Relation ] EquOp → == | != Relation → Addition [ RelOp Addition ] RelOp → < | <= | > | >= Addition → Term { AddOp Term } AddOp → + | - Term → Factor { MulOp Factor } MulOp → * | / | % Factor → [ UnaryOp ] Primary UnaryOp → - | ! Primary → Identifier [ [ Expression ] ] | Literal | ( Expression ) | Type ( Expression )
6.
Copyright © 2006
The McGraw-Hill Companies, Inc. Fig. 2.7 Clite grammar: lexical level Identifier → Letter { Letter | Digit } Letter → a | b | … | z | A | B | … | Z Digit → 0 | 1 | … | 9 Literal → Integer | Boolean | Float | Char Integer → Digit { Digit } Boolean → true | False Float → Integer . Integer Char → ‘ ASCII Char ‘
7.
Copyright © 2006
The McGraw-Hill Companies, Inc. Issues Not Addressed by this Grammar • Comments • Whitespace • Distinguishing one token <= from two tokens < = • Distinguishing identifiers from keywords like if These issues are addressed by identifying two levels: – lexical level – syntactic level
8.
Copyright © 2006
The McGraw-Hill Companies, Inc. 2.3.1 Lexical Syntax Input: a stream of characters from the ASCII set, keyed by a programmer. Output: a stream of tokens or basic symbols, classified as follows: – Identifiers e.g., Stack, x, i, push – Literals e.g., 123, 'x', 3.25, true – Keywords bool char else false float if int main true while – Operators = || && == != < <= > >= + - * / ! – Punctuation ; , { } ( )
9.
Copyright © 2006
The McGraw-Hill Companies, Inc. Whitespace Whitespace is any space, tab, end-of-line character (or characters), or character sequence inside a comment No token may contain embedded whitespace (unless it is a character or string literal) Example: >= one token > = two tokens
10.
Copyright © 2006
The McGraw-Hill Companies, Inc. Whitespace Examples in Pascal while a < b do legal - spacing between tokens while a<b do spacing not needed for < whilea<bdo illegal - can’t tell boundaries whilea < bdo between tokens
11.
Copyright © 2006
The McGraw-Hill Companies, Inc. Comments Not defined in grammar Clite uses // comment style of C++
12.
Copyright © 2006
The McGraw-Hill Companies, Inc. Identifier Sequence of letters and digits, starting with a letter if is both an identifier and a keyword Most languages require identifiers to be distinct from keywords In some languages, identifiers are merely predefined (and thus can be redefined by the programmer)
13.
Copyright © 2006
The McGraw-Hill Companies, Inc. program confusing; const true = false; begin if (a<b) = true then f(a) else … Redefining Identifiers can be dangerous
14.
Copyright © 2006
The McGraw-Hill Companies, Inc. Should Identifiers be case-sensitive? Older languages: no. Why? – Pascal: no. – Modula: yes – C, C++: yes – Java: yes – PHP: partly yes, partly no. What about orthogonality?
15.
Copyright © 2006
The McGraw-Hill Companies, Inc. 2.3.2 Concrete Syntax Based on a parse of its Tokens ; is a statement terminator (Algol-60, Pascal use ; as a separator) Rule for IfStatement is ambiguous: “The else ambiguity is resolved by connecting an else with the last encountered else-less if.” [Stroustrup, 1991]
16.
Copyright © 2006
The McGraw-Hill Companies, Inc. Expressions in Clite 13 grammar rules Use of meta braces – operators are left associative C++ expressions require 4 pages of grammar rules [Stroustrup] C uses an ambiguous expression grammar [Kernighan and Ritchie]
17.
Copyright © 2006
The McGraw-Hill Companies, Inc. Associativity and Precedence Clite Operator Associativity Unary - ! none * / left + - left < <= > >= none == != none && left || left
18.
Copyright © 2006
The McGraw-Hill Companies, Inc. Clite Equality, Relational Operators … are non-associative. (an idea borrowed from Ada) Why is this important? In C++, the expression: if (a < x < b) is not equivalent to if (a < x && x < b) But it is error-free! So, what does it mean?
Télécharger maintenant