#Sales Offer!| Get upto 25% Off:

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

Grab your Discount!

25% Coupon Code: SAVE25
get 25% !!