On this page:
3.7.1 Summary
3.7.2 Checklist
3.7.3 Reading
3.7.4 Assignment
3.7.5 Validators and interpreters
8.10

3.7 Iteration 6: Call and Return

3.7.1 Summary

The goal of this assignment is to introduce the procedure return abstraction and non-tail calls, so that we can call functions that return values to non-tail contexts.

You can use the interrogator to get limited access to the reference solution: https://soft.vub.ac.be/compilers/interrogator?an=a6.

3.7.2 Checklist

Provided passes

Completely new passes

Major modifications to passes

Minor modifications to passes

(Possibly) no modifications to passes

Removed passes
  • assign-homes

  • assign-homes-opt

3.7.3 Reading

The reading for this week is Procedural Abstraction: Return. As usual, this milestone description links to the documentation for each exercise in the chapter for convenience, but you are responsible for the reading the entire chapter.

3.7.4 Assignment

Implement or extend the following compiler passes

Here are some useful notes:

3.7.5 Validators and interpreters

The validators and interpreters for the source and target language are provided. Hence you do not need to extend them.