CMSI 488/588
Homework #4

Read Chapter 15 in Scott. Do all of the exercises marked "Check Your Understanding" in a social setting with classmates or friends, but do not turn these in. Also read Agner Fog's document linked from the course syllabus. There are parts you will want to skim, but keep an eye out for cool techniques.

  1. Problem 15.4 in [Scott].
  2. Problem 15.10 in [Scott].
  3. Problem 15.11 in [Scott].
  4. Problem 15.12 in [Scott].
  5. Download this unfinished Hana compiler. Complete one of the code generation functions that are currently stubs (the ones that call notDone()). Also, implement one of the following: inlining, tail recursion elimination, induction variable simplification, or loop unrolling.
  6. Build a web page from which people can download the Hana compiler from the previous problem. The page should feature some moderately cool artwork, and be full of useful information for people that would like to download your stuff (news, documentation, vital statistics, etc.). Look at sourceforge and similar sites that provide public downloads for ideas. The purpose of this problem is for you to be able to give an affirmative answer to job interviewers that ask whether you have built any complex projects for public distribution.