5. The following grammar describes (at a high level) part of the syntax of a typical ALGOL-like language. (Notation: non-terminals are in CAPITALS and terminals are in lower case. The details of ASSIGNMENT is uninteresting.) PROGRAM STMT_LIST STMT STMT_LIST end endif --> procedure STMT_LIST --> STMT STMT_LIST STMT --> ASSIGNMENT 1 1 As a first step toward understanding a program, it is interesting to understand the number of times that each statement in the program is executed. It is equally important to understand the total execution time. To estimate these numbers for the above language, we can use the following simple rules: • the number of times that the body of a do-loop executes can be computed from the two constants that govern the range of its index variable; • the then-part of an if statement executes half the time; similarly, the else-part executes half the time; • an ASSIGNMENT statement takes one unit of execution time. do var constant to constant begin if var then STMT LIST else STMT LIST Write a set of syntax-directed translation rules (using YACC-like notation or the notation in the text) that annotates each non--terminal node with the estimated cost (in terms of execution units) using the rules above. Be clear about what assumptions you are making with respect to how you compute these values and what attributes are associated with the different symbols. • Draw and annotate (with your attributes) the parse tree for the following input using your rules from above: else end procedure do 1-1 to 100 begin if x then do 1-1 to 50 begin ASSIGNMENT end endif ASSIGNMENT ASSIGNMENT

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

Please written by computer source 

The following grammar describes (at a high level) part of the syntax of a typical
ALGOL-like language. (Notation: non-terminals are in CAPITALS and terminals are in
lower case. The details of ASSIGNMENT is uninteresting.)
PROGRAM
STMT_LIST
--> procedure STMT LIST
--> STMT STMT_LIST
STMT
--> ASSIGNMENT
1
STMT
STMT LIST end
endif
1
As a first step toward understanding a program, it is interesting to understand the number of
times that each statement in the program is executed. It is equally important to understand the
total execution time. To estimate these numbers for the above language, we can use the
following simple rules:
• the number of times that the body of a do-loop executes can be computed from the
two constants that govern the range of its index variable;
•
the then-part of an if statement executes half the time; similarly, the else-part executes
half the time:
• an ASSIGNMENT statement takes one unit of execution time.
• Write a set of syntax-directed translation rules (using YACC--like notation or the
notation in the text) that annotates each non--terminal node with the estimated cost (in
terms of execution units) using the rules above. Be clear about what assumptions you are
making with respect to how you compute these values and what attributes are associated
with the different symbols.
do var constant to constant begin
if var then STMT LIST else STMT_LIST
• Draw and annotate (with your attributes) the parse tree for the following input using your
rules from above:
else
end
procedure
do 11 to 100 begin
if x then
do 1-1 to 50 begin
ASSIGNMENT
end
endif
ASSIGNMENT
ASSIGNMENT
Transcribed Image Text:The following grammar describes (at a high level) part of the syntax of a typical ALGOL-like language. (Notation: non-terminals are in CAPITALS and terminals are in lower case. The details of ASSIGNMENT is uninteresting.) PROGRAM STMT_LIST --> procedure STMT LIST --> STMT STMT_LIST STMT --> ASSIGNMENT 1 STMT STMT LIST end endif 1 As a first step toward understanding a program, it is interesting to understand the number of times that each statement in the program is executed. It is equally important to understand the total execution time. To estimate these numbers for the above language, we can use the following simple rules: • the number of times that the body of a do-loop executes can be computed from the two constants that govern the range of its index variable; • the then-part of an if statement executes half the time; similarly, the else-part executes half the time: • an ASSIGNMENT statement takes one unit of execution time. • Write a set of syntax-directed translation rules (using YACC--like notation or the notation in the text) that annotates each non--terminal node with the estimated cost (in terms of execution units) using the rules above. Be clear about what assumptions you are making with respect to how you compute these values and what attributes are associated with the different symbols. do var constant to constant begin if var then STMT LIST else STMT_LIST • Draw and annotate (with your attributes) the parse tree for the following input using your rules from above: else end procedure do 11 to 100 begin if x then do 1-1 to 50 begin ASSIGNMENT end endif ASSIGNMENT ASSIGNMENT
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

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