M1: Introduction to Compilers

This first module provides an introduction to the course and the anatomy of a compiler. During this module you will also get familiar with the language for this course, Golang.

Pre-recorded Lectures

Note: Professor Samuels will state on Ed when the precorded videos are ready to be viewed each week for a module.

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

The lectures are a series of approx 15-20 minute videos. Please come back here weekly as the videos will be updated if a module spans multiple weeks. This module includes the following videos:

  • Anatomy of a Compiler (Back End) Skip to the section: Why study compilers

  • Golang Code Structure & Tips

The slides presented in lecture and these videos are accessible on our Canvas Page. Click on the Files link and you then can download the m1.zip file.

Resources/Readings

For this module, your focus should be to learn the basic syntax of the Go language since compiler will be built based off subset of the Go language.

  • The slides and code presented in this module are accessible on our Canvas Page. Click on the Files link and you then can download the m1.zip file.

  • Go By Example
    • See M1 slides to know the links to click on.

  • Engineering a Compiler readings:
    • Chapter 1

  • The Go Programming Language (textbook) provides a few chapters on the syntax of the language. This is not required but if you want a more in-depth description about language constructs then you should reference this book.

Synchronous Sessions (In-person Lecture)

As a reminder here are the dates and times for the synchronous session for this module:

  • Dates/Times
    • Wednesday January 8th @ 10:30am-12:20pm

  • Session Outline
    • Course logistics

    • Anatomy of a Compiler

    • Golang Overview [if time permits]

Assignment