Assignment 2: Register allocation
Overview
In this assignment, you will be extending your Var language compiler from the last assignment to do register allocation in the back end instead of putting all variables on the stack.
Textbook coverage
This assignment is based on chapter 3 of Essentials of Compilation.
Due date
This assignment is due on Friday, October 24 at 6 PM.
Starting code base
The starting code base is the zipfile ch3.zip,
which is posted on the course Canvas site.
You should unzip this file in your Github repo,
inside the src/ directory.
It contains partial implementations of all the code for the assignment.
Inside the ch3 directory will be these subdirectories:
-
The
tests/subdirectory contains the same test programs as in the previous assignment. -
The
reference/subdirectory contains the output from the instructor's version of the compiler. Note that there are many more files in this directory than in the previous assignment, for reasons which will be explained below. -
The
scripts/subdirectory contains scripts for testing your code. These are mostly the same as in the last assignment, but there are a few additional features, described below.
The README.md file
Create a README.md file in your ch3 directory,
and in it, identify which person wrote which passes.
(If both partners worked on a pass, indicate that too.)
Also, if you used any late days on the assignment,
indicate how many late days you used,
as well as the total number of late days used so far in the term.
"Submitting" your assignment
The process for "submitting" the code
is the same as in the previous assignment,
except that the code is in the ch3 directory, of course.