Computer Science 411
Final Project

John Aycock

Due 4:00pm, 15 April 2013

Important Notes


Generate ARM assembly code for J-- files. The generated assembly code should be assembled and linked with the supplied tools in ~aycock/411/bin and run under the supplied version of qemu. (You have been given, via your TA, a Makefile to automate this as well as sample ARM programs that exercise the system calls your run-time system needs to perform.)

Test files may be found in the usual location.

An Option: ``Plan B''

You can use the code in ~aycock/411/TEST/planb if you don't want (or are unable) to use your code from past milestones. This is your decision, but note that there is a penalty for doing so in terms of marks - see Evaluation below.

The C code for a J-- file can be produced using astdumpmain in the reference compiler directory. The code output should be compiled with

gcc -Wall -shared output.c -o
in order to work with the driver supplied in ~aycock/411/TEST/planb.

Another Option: Not Writing the Run-Time System

You may email me and ask for my RTS code if you don't want to write your own. However, note that by doing so, there is a penalty in terms of marks - see Evaluation below.


Some marks are allocated for performing some optimizations to the code you generate - see Evaluation below. You will need to supply appropriate testing to demonstrate to the TA that your optimizations work.

If you want more options, come see me.

And the fine print:

Project Submission

On the project due date, email your TA an archive file containing all your source code along with your test files. Please send it to the email address You don't need to include automatically-generated code from compiler tools.

Include your name and student ID number in your email.

In your archive file, also include the output from the script program, in which you:


A nonfunctional submission, an incomplete submission, or one that deviates radically from the above specifications, cannot be given a grade above 25% and will be referred to me to mark. You don't want that, because if you deviate from the spec, I get to deviate from the marking guide!

John Aycock 2013-03-20