Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Suppose we are generating code for an imperative language on a machine with 8 - byte floating - point numbers, 4 - byte integers, 1

Suppose we are generating code for an imperative language on a machine with 8-byte floating-point numbers, 4-byte integers, 1-byte characters, and 4-byte alignment for both integers and floating-point numbers. Suppose further that we plan to use contiguous row-major layout for multidimensional arrays, that we do not wish to reorder fields of records or pack either records or arrays, and that we will assume without checking that all array subscripts are in bounds.
(a) Consider the following variable declarations:
A : array [1..10,10..100] of real
i : integer
x : real
Show the code that our compiler should generate for the following as- signment: x := A[3,i]. Explain how you arrived at your answer.
(b) Consider the following more complex declarations:
r : record
x : integer
y : char
A : array [1..10,10..20] of record
z : real
B : array [0..71] of char
j, k : integer
Assume that these declarations are local to the current subroutine. Note the lower bounds on indices in A; the first element is A[1,10].
Describe how r would be laid out in memory. Then show code to load r.A[2,j].B[k] into a register. Be sure to indicate which portions of the address calculation could be performed at compile time.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Intelligent Image Databases Towards Advanced Image Retrieval

Authors: Yihong Gong

1st Edition

1461375037, 978-1461375036

More Books

Students also viewed these Databases questions