Skip to content

Assignment 6: Functions: the Function language

Overview

In this assignment, you will be extending the "Tuple" language compiler from the last assignment to create the "Function" language. This language will add the following features:

  • top-level user-defined functions

Textbook coverage

This assignment is based on chapter 7 of Essentials of Compilation.

Due date

This assignment is due on Friday, December 6th at 6 PM.

You can have up to two extra late days for this assignment only.

Starting code base

The starting code base is the zipfile ch7.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 ch7 directory will be the usual subdirectories:

  • The tests/ subdirectory contains the test programs for the compiler.

  • The reference/ subdirectory contains the output from the instructor's version of the compiler.

  • The scripts/ subdirectory contains scripts for testing your code.

README or README.md file

Create a README or README.md file in your ch6 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.

New language features

The new language feature for this compiler is top-level user-defined functions.