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
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
Related questions
Question
Please written by computer source
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images
Knowledge Booster
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.Recommended textbooks for you
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)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
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)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education