M6: Intermediate Representations and Procedure Abstraction

This sixth module we begin our transition to talking about preparing for code generation (i.e., the backend of the compiler). This module will provide an overview of the memory layout for programs and provide an overview of the intermediate representation for the language.

Pre-recorded Lectures and/or Required Readings

The pre-recorded lectures are available here: `M6 Videos <>`_. You can also find the videos under the “Panopto” tab on the MPCS 51300 canvas site.

The lectures are a series of approx 20-30 minute videos divided into 4 sections:

The slides/code presented in these videos are accessible in the upstream repository under the m6/resources directories. Please reach out to me if you do not have access to this repository.

Supplementary Resources

  • Engineering a Compiler readings:
    • Chapter 6.1 - 6.4

Synchronous Session (In-person or Remote)

You will find the links to the Zoom sessions on Canvas. As a reminder here are the dates and times for the synchronous session for this module:

  • Dates/Times
    • Section 1: Tuesday Februrary 7th @ 5:30pm-7:00pm

  • Discussion Outline
    • Procedure Abstraction: Activation Records

    • Code Shape: Storage Locations, Expressions, and Structure References

Assignment

Assignments are always due on Friday evenings.