Question: 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 byte floatingpoint numbers, byte integers, byte characters, and byte alignment for both integers and floatingpoint numbers. Suppose further that we plan to use contiguous rowmajor 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 of real
i : integer
x : real
Show the code that our compiler should generate for the following as signment: x : Ai Explain how you arrived at your answer.
b Consider the following more complex declarations:
r : record
x : integer
y : char
A : array of record
z : real
B : array 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
Describe how r would be laid out in memory. Then show code to load rAjBk 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
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
