Exercise 3.17 – Problems 6, 7, 8 and 9.

  1. Translation and Stack Level. Consider the expression

e = if x > 1 then x else let z = x + y in z + z

Compute codeV e ? sl for an address environment ? = {x ? (L,1), y ? (L, -1)} and stack level sl = 3. Determine, similarly as in the examples in the text, the current stack level for each instruction.

  1. Translation of Functions. Consider the expression:

e = fun xy ? if x = 1 then y else fac (x – 1)(x · y)

Compute code V e ? sl for the address environment ? = {fac ? (L,1)} and stack level sl = 5.

  1. Addressing of Variables. Introduce a new register SP0 relative to which local variables can be addressed. For this, introduce a new instruction for accessing local variables and modify the MAMA code generation so that this new register is managed correctly.
  2. Functions With Local Variables. Consider the function definition:

fun x, y, z ? let x = 1

in let a = 3

in let b = 4

in (a +(b +(x +(y + z))))

</pclass=”msonormal”>

Found something interesting ?

• On-time delivery guarantee
• PhD-level professional writers
• Free Plagiarism Report

• 100% money-back guarantee
• Absolute Privacy & Confidentiality
• High Quality custom-written papers

Related Model Questions

Feel free to peruse our college and university model questions. If any our our assignment tasks interests you, click to place your order. Every paper is written by our professional essay writers from scratch to avoid plagiarism. We guarantee highest quality of work besides delivering your paper on time.

Grab your Discount!

25% Coupon Code: SAVE25
get 25% !!