Soumettre la recherche
Mettre en ligne
3 describing syntax
•
Télécharger en tant que PPT, PDF
•
3 j'aime
•
2,167 vues
M
Munawar Ahmed
Suivre
CONCEPTS OF PROGRAMMING LANGUAGES TENTH EDITION
Lire moins
Lire la suite
Formation
Signaler
Partager
Signaler
Partager
1 sur 29
Télécharger maintenant
Recommandé
6. describing syntax and semantics
6. describing syntax and semantics
Zambales National High School
Software Engineering Practice
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
08 subprograms
08 subprograms
baran19901990
Chapter18
Chapter18
gourab87
Unit 8
Unit 8
anuragmbst
Natural Language Processing: Parsing
Natural Language Processing: Parsing
Rushdi Shams
Lecture 14 run time environment
Lecture 14 run time environment
Iffat Anjum
Specification and complexity - algorithm
Specification and complexity - algorithm
Bipul Roy Bpl
Recommandé
6. describing syntax and semantics
6. describing syntax and semantics
Zambales National High School
Software Engineering Practice
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
08 subprograms
08 subprograms
baran19901990
Chapter18
Chapter18
gourab87
Unit 8
Unit 8
anuragmbst
Natural Language Processing: Parsing
Natural Language Processing: Parsing
Rushdi Shams
Lecture 14 run time environment
Lecture 14 run time environment
Iffat Anjum
Specification and complexity - algorithm
Specification and complexity - algorithm
Bipul Roy Bpl
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time Environments
Jyothishmathi Institute of Technology and Science Karimnagar
Allocation and free space management
Allocation and free space management
rajshreemuthiah
Lexical analyzer
Lexical analyzer
Princess Doll
Parse Tree
Parse Tree
A. S. M. Shafi
Daa unit 1
Daa unit 1
Abhimanyu Mishra
Multi processor scheduling
Multi processor scheduling
Shashank Kapoor
Chapter1 Formal Language and Automata Theory
Chapter1 Formal Language and Automata Theory
Tsegazeab Asgedom
Process synchronization in Operating Systems
Process synchronization in Operating Systems
Ritu Ranjan Shrivastwa
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)
Animesh Chaturvedi
Operating System Chapter 1
Operating System Chapter 1
Kasam Sharif
BNF & EBNF
BNF & EBNF
AshaniDickowita
A simple approach of lexical analyzers
A simple approach of lexical analyzers
Archana Gopinath
Prolog Programming : Basics
Prolog Programming : Basics
Mitul Desai
Concurrency control
Concurrency control
Subhasish Pati
Concurrency Control in Database Management System
Concurrency Control in Database Management System
Janki Shah
Walkthroughs
Walkthroughs
NancyBeaulah_R
Chapter 5 Syntax Directed Translation
Chapter 5 Syntax Directed Translation
Radhakrishnan Chinnusamy
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
Mohamed Loey
Introduction to data structures and Algorithm
Introduction to data structures and Algorithm
Dhaval Kaneria
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
swapnac12
9 subprograms
9 subprograms
Munawar Ahmed
CH # 1 preliminaries
CH # 1 preliminaries
Munawar Ahmed
Contenu connexe
Tendances
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time Environments
Jyothishmathi Institute of Technology and Science Karimnagar
Allocation and free space management
Allocation and free space management
rajshreemuthiah
Lexical analyzer
Lexical analyzer
Princess Doll
Parse Tree
Parse Tree
A. S. M. Shafi
Daa unit 1
Daa unit 1
Abhimanyu Mishra
Multi processor scheduling
Multi processor scheduling
Shashank Kapoor
Chapter1 Formal Language and Automata Theory
Chapter1 Formal Language and Automata Theory
Tsegazeab Asgedom
Process synchronization in Operating Systems
Process synchronization in Operating Systems
Ritu Ranjan Shrivastwa
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)
Animesh Chaturvedi
Operating System Chapter 1
Operating System Chapter 1
Kasam Sharif
BNF & EBNF
BNF & EBNF
AshaniDickowita
A simple approach of lexical analyzers
A simple approach of lexical analyzers
Archana Gopinath
Prolog Programming : Basics
Prolog Programming : Basics
Mitul Desai
Concurrency control
Concurrency control
Subhasish Pati
Concurrency Control in Database Management System
Concurrency Control in Database Management System
Janki Shah
Walkthroughs
Walkthroughs
NancyBeaulah_R
Chapter 5 Syntax Directed Translation
Chapter 5 Syntax Directed Translation
Radhakrishnan Chinnusamy
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
Mohamed Loey
Introduction to data structures and Algorithm
Introduction to data structures and Algorithm
Dhaval Kaneria
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
swapnac12
Tendances
(20)
COMPILER DESIGN Run-Time Environments
COMPILER DESIGN Run-Time Environments
Allocation and free space management
Allocation and free space management
Lexical analyzer
Lexical analyzer
Parse Tree
Parse Tree
Daa unit 1
Daa unit 1
Multi processor scheduling
Multi processor scheduling
Chapter1 Formal Language and Automata Theory
Chapter1 Formal Language and Automata Theory
Process synchronization in Operating Systems
Process synchronization in Operating Systems
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)
Operating System Chapter 1
Operating System Chapter 1
BNF & EBNF
BNF & EBNF
A simple approach of lexical analyzers
A simple approach of lexical analyzers
Prolog Programming : Basics
Prolog Programming : Basics
Concurrency control
Concurrency control
Concurrency Control in Database Management System
Concurrency Control in Database Management System
Walkthroughs
Walkthroughs
Chapter 5 Syntax Directed Translation
Chapter 5 Syntax Directed Translation
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
Introduction to data structures and Algorithm
Introduction to data structures and Algorithm
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
En vedette
9 subprograms
9 subprograms
Munawar Ahmed
CH # 1 preliminaries
CH # 1 preliminaries
Munawar Ahmed
8 statement level
8 statement level
Munawar Ahmed
7 expressions and assignment statements
7 expressions and assignment statements
Munawar Ahmed
5 Names, bindings,Typechecking and Scopes
5 Names, bindings,Typechecking and Scopes
Munawar Ahmed
Java Variable Storage
Java Variable Storage
Shahid Rasheed
2 evolution of the major
2 evolution of the major
Munawar Ahmed
6 data types
6 data types
Munawar Ahmed
4 lexical and syntax
4 lexical and syntax
Munawar Ahmed
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
En vedette
(12)
9 subprograms
9 subprograms
CH # 1 preliminaries
CH # 1 preliminaries
8 statement level
8 statement level
7 expressions and assignment statements
7 expressions and assignment statements
5 Names, bindings,Typechecking and Scopes
5 Names, bindings,Typechecking and Scopes
Java Variable Storage
Java Variable Storage
2 evolution of the major
2 evolution of the major
6 data types
6 data types
4 lexical and syntax
4 lexical and syntax
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
Similaire à 3 describing syntax
UNIT 1 part II.ppt
UNIT 1 part II.ppt
Ranjeet Reddy
sabesta3.ppt
sabesta3.ppt
NaveedAfzal34
CS-4337_03_Chapter3- syntax and semantics.pdf
CS-4337_03_Chapter3- syntax and semantics.pdf
FutureKids1
CH 2.pptx
CH 2.pptx
Obsa2
sabesta.ppt
sabesta.ppt
NaveedAfzal34
Syntax
Syntax
ABDERRAHMAN ID -SAID
Context Free Grammar
Context Free Grammar
Akhil Kaushik
Lecture 6.pdf
Lecture 6.pdf
AliSarmad15
Control structure
Control structure
baran19901990
Lecture3 lexical analysis
Lecture3 lexical analysis
Mahesh Kumar Chelimilla
6-Role of Parser, Construction of Parse Tree and Elimination of Ambiguity-06-...
6-Role of Parser, Construction of Parse Tree and Elimination of Ambiguity-06-...
movocode
Types of parsers
Types of parsers
Sabiha M
8074448.ppt
8074448.ppt
AliAsgharPourhajiKaz
Regular expressions h1
Regular expressions h1
Rajendran
4 lexical and syntax analysis
4 lexical and syntax analysis
jigeno
Unit-1 PPL PPTvvhvmmmmmmmmmmmmmmmmmmmmmm
Unit-1 PPL PPTvvhvmmmmmmmmmmmmmmmmmmmmmm
DhruvKushwaha12
Lisp and scheme i
Lisp and scheme i
Luis Goldster
context free language
context free language
khush_boo31
Sneha Rajana - Deep Learning Architectures for Semantic Relation Detection Tasks
Sneha Rajana - Deep Learning Architectures for Semantic Relation Detection Tasks
MLconf
Using Language Oriented Programming to Execute Computations on the GPU
Using Language Oriented Programming to Execute Computations on the GPU
Skills Matter
Similaire à 3 describing syntax
(20)
UNIT 1 part II.ppt
UNIT 1 part II.ppt
sabesta3.ppt
sabesta3.ppt
CS-4337_03_Chapter3- syntax and semantics.pdf
CS-4337_03_Chapter3- syntax and semantics.pdf
CH 2.pptx
CH 2.pptx
sabesta.ppt
sabesta.ppt
Syntax
Syntax
Context Free Grammar
Context Free Grammar
Lecture 6.pdf
Lecture 6.pdf
Control structure
Control structure
Lecture3 lexical analysis
Lecture3 lexical analysis
6-Role of Parser, Construction of Parse Tree and Elimination of Ambiguity-06-...
6-Role of Parser, Construction of Parse Tree and Elimination of Ambiguity-06-...
Types of parsers
Types of parsers
8074448.ppt
8074448.ppt
Regular expressions h1
Regular expressions h1
4 lexical and syntax analysis
4 lexical and syntax analysis
Unit-1 PPL PPTvvhvmmmmmmmmmmmmmmmmmmmmmm
Unit-1 PPL PPTvvhvmmmmmmmmmmmmmmmmmmmmmm
Lisp and scheme i
Lisp and scheme i
context free language
context free language
Sneha Rajana - Deep Learning Architectures for Semantic Relation Detection Tasks
Sneha Rajana - Deep Learning Architectures for Semantic Relation Detection Tasks
Using Language Oriented Programming to Execute Computations on the GPU
Using Language Oriented Programming to Execute Computations on the GPU
Dernier
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
ssuser54595a
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
Sarwono Sutikno, Dr.Eng.,CISA,CISSP,CISM,CSX-F
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
sanyamsingh5019
MENTAL STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
PoojaSen20
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
dawncurless
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
manuelaromero2013
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
GaneshChakor2
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
Thiyagu K
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
Sayali Powar
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
JhengPantaleon
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
RoyAbrique
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
TechSoup
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
anshu789521
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
UmakantAnnand
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
InMediaRes1
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
SoniaTolstoy
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
chloefrazer622
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
ChitralekhaTherkar
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
Celine George
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
Marc Dusseiller Dusjagr
Dernier
(20)
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
MENTAL STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
3 describing syntax
1.
ISBN 0-321-49362-1 Chapter 3 Describing
Syntax and Semantics
2.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-2 Chapter 3 Topics • Introduction • The General Problem of Describing Syntax • Formal Methods of Describing Syntax • Attribute Grammars
3.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-3 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 provide a language’s definition – Users of a language definition • Other language designers • Implementers • Programmers (the users of the language)
4.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-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 © 2007
Addison- Wesley. All rights reserved. 1-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 © 2007
Addison- Wesley. All rights reserved. 1-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 © 2007
Addison- Wesley. All rights reserved. 1-7 BNF Fundamentals • In BNF, abstractions are used to represent classes of syntactic structures--they act like syntactic variables (also called nonterminal symbols, or just terminals) • 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 – Examples of BNF rules: <ident_list> → identifier | identifier, <ident_list> <if_stmt> → if <logic_expr> then <stmt> • Grammar: a finite non-empty set of rules • A start symbol is a special element of the nonterminals of a grammar
8.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-8 BNF Rules • An abstraction (or nonterminal symbol) can have more than one RHS <stmt> → <single_stmt> | begin <stmt_list> end
9.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-9 Describing Lists • Syntactic lists are described using recursion <ident_list> → ident | ident, <ident_list> • A derivation is a repeated application of rules, starting with the start symbol and ending with a sentence (all terminal symbols)
10.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-10 An Example Grammar <program> → <stmts> <stmts> → <stmt> | <stmt> ; <stmts> <stmt> → <var> = <expr> <var> → a | b | c | d <expr> → <term> + <term> | <term> - <term> <term> → <var> | const
11.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-11 An Example Derivation <program> => <stmts> => <stmt> => <var> = <expr> => a = <expr> => a = <term> + <term> => a = <var> + <term> => a = b + <term> => a = b + const
12.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-12 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
13.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-13 Parse Tree • A hierarchical representation of a derivation <program> <stmts> <stmt> const a <var> = <expr> <var> b <term> + <term>
14.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-14 Ambiguity in Grammars • A grammar is ambiguous if and only if it generates a sentence that has two or more distinct parse trees
15.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-15 An Ambiguous Expression Grammar <expr> → <expr> <op> <expr> | const <op> → / | - <expr> <expr> <expr> <expr> <expr> <expr> <expr> <expr> <expr> <expr> <op> <op> <op> <op> const const const const const const- -/ / <op>
16.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-16 An Unambiguous Expression Grammar • If we use the parse tree to indicate precedence levels of the operators, we cannot have ambiguity <expr> → <expr> - <term> | <term> <term> → <term> / const| const <expr> <expr> <term> <term> <term> const const const/ -
17.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-17 Associativity of Operators • Operator associativity can also be indicated by a grammar <expr> -> <expr> + <expr> | const (ambiguous) <expr> -> <expr> + const | const (unambiguous) <expr><expr> <expr> <expr> const const const + +
18.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-18 Extended BNF • Optional parts are placed in brackets [ ] <proc_call> -> ident [(<expr_list>)] • Alternative parts of RHSs are placed inside parentheses and separated via vertical bars <term> → <term> (+|-) const • Repetitions (0 or more) are placed inside braces { } <ident> → letter {letter|digit}
19.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-19 BNF and EBNF • BNF <expr> → <expr> + <term> | <expr> - <term> | <term> <term> → <term> * <factor> | <term> / <factor> | <factor> • EBNF <expr> → <term> {(+ | -) <term>} <term> → <factor> {(* | /) <factor>}
20.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-20 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
21.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-21 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)
22.
ATTRIBUTE GRAMMARS Note. The
textbook, pp.135-140, has a better description of this topic than the slides following
23.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-23 Attribute Grammars • Attribute grammars (AGs) have additions to CFGs to carry some semantic info on parse tree nodes • Primary value of AGs: – Static semantics specification – Compiler design (static semantics checking)
24.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-24 Attribute Grammars : Definition • Def: An attribute grammar is a context-free grammar G = (S, N, T, P) with the following additions: – For each grammar symbol x there is a set A(x) of attribute values – Each rule has a set of functions that define certain attributes of the nonterminals in the rule – Each rule has a (possibly empty) set of predicates to check for attribute consistency
25.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-25 Attribute Grammars: Definition • Let X0 → X1 ... Xn be a rule • Functions of the form S(X0) = f(A(X1), ... , A(Xn)) define synthesized attributes • Functions of the form I(Xj) = f(A(X0), ... , A(Xn)), for i <= j <= n, define inherited attributes • Initially, there are intrinsic attributes on the leaves
26.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-26 Attribute Grammars: An Example • Syntax <assign> -> <var> = <expr> <expr> -> <var> + <var> | <var> <var> A | B | C • actual_type: synthesized for <var> and <expr> • expected_type: inherited for <expr>
27.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-27 Attribute Grammar (continued) • Syntax rule: <expr> → <var>[1] + <var>[2] Semantic rules: <expr>.actual_type ← <var>[1].actual_type Predicate: <var>[1].actual_type == <var>[2].actual_type <expr>.expected_type == <expr>.actual_type • Syntax rule: <var> → id Semantic rule: <var>.actual_type ← lookup (<var>.string)
28.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-28 Attribute Grammars (continued) • How are attribute values computed? – If all attributes were inherited, the tree could be decorated in top-down order. – If all attributes were synthesized, the tree could be decorated in bottom-up order. – In many cases, both kinds of attributes are used, and it is some combination of top-down and bottom-up that must be used.
29.
Copyright © 2007
Addison- Wesley. All rights reserved. 1-29 Attribute Grammars (continued) <expr>.expected_type ← inherited from parent <var>[1].actual_type ← lookup (A) <var>[2].actual_type ← lookup (B) <var>[1].actual_type =? <var>[2].actual_type <expr>.actual_type ← <var>[1].actual_type <expr>.actual_type =? <expr>.expected_type
Télécharger maintenant