EXAMPLE 3.6 An Attribute Grammar for Simple Assignment Statements 1. Syntax rule: → = Semantic rule: .expected_type ← .actual_type 2. Syntax rule: → [2] + [3] Semantic rule: .actual_type ← if ([2].actual_type = int) and ([3].actual_type = int) then int else real end if Predicate: .actual_type .expected_type 3. Syntax rule: → Semantic rule: .actual_type ← .actual_type Predicate: .actual_type .expected_type == == 4. Syntax rule: → A | B | C Semantic rule: .actual_type ← look-up (.string) The look-up function looks up a given variable name in the symbol table and returns the variable's type.
Hello ,
the question below is from concepts of
Q) 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.
Example 3.6 is attached as image .
P.S : please explain the answer to me as I have shared the question twice today but the answer didn't convince me.
![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.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fd38774d4-f9f4-40ae-a842-e50e2367e74a%2Fdc4e0e96-7cb1-4502-8ceb-5adf5f80ba59%2Fmuhq5l_processed.png&w=3840&q=75)

Trending now
This is a popular solution!
Step by step
Solved in 2 steps

I am so sorry but the answer is wrong. the question is "follow the same BNF as the photo but Data types cannot be mixed in expressions", so we need to modify the grammar rules in order to prevent that mix . please explain how this can happen with your solution "or" another updated solution. thank you








