Answer the given question with a proper explanation and step-by-step solution.  Write an attribute grammar whose BNF basis is that of Example 3.6 in Section 3.4.5 but whose language rules are as follows: Data types cannot be mixed in expressions, but assignment statements need not have the same types on both sides of the assignment operator. Be clear, as I have no idea how this works

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Answer the given question with a proper explanation and step-by-step solution.

 Write an attribute grammar whose BNF basis is that of Example 3.6 in Section 3.4.5 but whose language rules are as follows: Data types cannot be mixed in expressions, but assignment statements need not have the same types on both sides of the assignment operator. Be clear, as I have no idea how this works 

EXAMPLE 3.6
An Attribute Grammar for Simple Assignment Statements
1. Syntax rule: <assign> → <var> = <expr>
Semantic rule: <expr>.expected_type ← <var>.actual_type
2. Syntax rule: <expr> →→ <var>[2] + <var>[3]
Semantic rule: <expr>.actual_type ←
if (<var>[2].actual_type=int) and
(<var>[3].actual_type = int)
then int
else real
end if
Predicate:
<expr>.actual_type <expr>.expected_type
3. Syntax rule:
<expr> → <var>
Semantic rule: <expr>.actual_type< <var>.actual_type
Predicate:
<expr>.actual_type == <expr>.expected_type
==
4. Syntax rule: <var> → A | B | C
Semantic rule: <var>.actual_type look-up (<var>.string)
The look-up function looks up a given variable name in the symbol table and
returns the variable's type.
Transcribed Image Text:EXAMPLE 3.6 An Attribute Grammar for Simple Assignment Statements 1. Syntax rule: <assign> → <var> = <expr> Semantic rule: <expr>.expected_type ← <var>.actual_type 2. Syntax rule: <expr> →→ <var>[2] + <var>[3] Semantic rule: <expr>.actual_type ← if (<var>[2].actual_type=int) and (<var>[3].actual_type = int) then int else real end if Predicate: <expr>.actual_type <expr>.expected_type 3. Syntax rule: <expr> → <var> Semantic rule: <expr>.actual_type< <var>.actual_type Predicate: <expr>.actual_type == <expr>.expected_type == 4. Syntax rule: <var> → A | B | C Semantic rule: <var>.actual_type look-up (<var>.string) The look-up function looks up a given variable name in the symbol table and returns the variable's type.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Transitive relations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education