M6: Procedure Abstraction and Code Shape

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/M7 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:

  • Activation Records (cont.) m6/resources

  • Code Shape: ILOC Overiew (Part 1) m6/resources

  • Code Shape: ILOC Overiew (Part 2) m6/resources

The slides/code presented in these videos are accessible in the upstream repository under the m5 and 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: Wednesday November 3rd @ 4:00pm-5:20pm

  • Discussion Outline
    • Procedure Abstraction: Activation Records

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

Assignment

Assignments are always due on Wednesday evenings.