Compilers

Schedule

Lecture Hours: 1:15 PM - 2:45 PM on Tuesdays and Thursdays
Lecture Location: Science Center 183
Lab Location: Science Center 240

Calendar

The following is a tentative course calendar; it is subject to change as circumstances dictate.

Captured videos of lecture are linked in the calendar below. The corresponding resources created during those lectures can be found in the Lecture Materials.

WEEK DAY ANNOUNCEMENTS TOPIC ASSIGNMENTS
1

Jan 22

Lecture

Introduction to Compilers and OCaml

OCaml Warm-Up

Jan 24

Lecture

Lab Activity (Jan 28)

OCaml Data Types and Recursion

2

Jan 29

Lecture

Higher-Order Functions in OCaml

Higher-Order Functions and Recursive Types

Jan 31

Lecture

Drop/add ends (Feb 01)

Syntax and Compilation

3

Feb 05

Lecture

Arithmetic Operations and Allocation

Auklet

Feb 07

Lecture

Bindings and Scope

Bluebird

4

Feb 12

Lecture

Value Tagging

Feb 14

Lecture

C Calling Conventions; Runtime Errors

Cardinal

5

Feb 19

Lecture

Functions

Feb 21

Lecture

Compile-time Errors

Dove

6

Feb 26

Lecture

Heap Allocation and Pairs

Feb 28

Lecture

7

Mar 05

Take-Home Mid-Term Assigned

Lecture

System Calls

Eagle

Mar 07

Lecture

Register Allocation

 

Mar 12

Spring Break

Mar 14

8

Mar 19

Lecture

First-Class Functions and Closures

Mar 21

Lecture

Take-Home Mid-Term Due (Mar 22)

Falcon

9

Mar 26

Lecture

Mar 28

Lecture

CR/NC/W Deadline (Mar 29)

Memory Management Overview

10

Apr 02

Lecture

Manual Memory Management

Apr 04

Lecture

Mark/Compact

Gull

11

Apr 09

Lecture

Garbage Collection Strategies

Apr 11

Lecture

Tail Call Optimization

12

Apr 16

Lecture

Apr 18

Lecture

LL Parsing and Left Recursion

Hoopoe

13

Apr 23

Lecture

Apr 25

Lecture

LR Parsing

Pyrrhuloxia

14

Apr 30

Lecture

Type Systems

May 02

Lecture

 

May 09

Take-Home Final (Due May 17)