Compilers

Schedule

Lecture Hours: 9:45 AM - 11:00 AM on Tuesdays and Thursdays
Lecture Location: https://swarthmore.zoom.us/j/81226710226
Lab Location: https://swarthmore.zoom.us/j/86710127547

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

Feb 11

Lecture, Notes

Introduction to Compilers and OCaml

OCaml Warm-Up

2

Feb 16

Lecture, Notes

OCaml Data Types and Recursion

Hatchling (activity)

Feb 18

Lecture, Notes

Higher-Order Functions in OCaml

Higher-Order Functions and Recursive Types

3

Feb 23

Lecture, Notes

Drop/add ends (Feb 24)

Syntax and Compilation

Feb 25

Lecture, Notes

Bindings and Scope

Auklet

4

Mar 02

Lecture, Notes, Lab A, Lab B

Operators and Conditionals

Mar 04

Lecture, Notes

Value Tagging

Bluebird

5

Mar 09

Lecture, Notes

C Calling Conventions; Runtime Errors

Mar 11

Lecture, Notes

Functions

Cardinal

6

Mar 16

Lecture, Notes

Compile-time Errors

Mar 18

Test 1 Assigned

Lecture, Notes

System Calls

Dove

7

Mar 23

Lecture, Notes

Heap Allocation and Pairs

Mar 25

Spring Break

8

Mar 30

Test 1 Due

Lecture, Notes

Heap Allocation and Pairs

(continued)

Apr 01

Lecture, Notes

First-Class Functions and Closures

Eagle

9

Apr 06

Lecture, Notes

Apr 08

Lecture, Notes

Falcon

10

Apr 13

Lecture, Notes

Tail Call Optimization

Apr 15

Test 2 Assigned

Lecture, Notes

CR/NC/W Deadline (Apr 16)

11

Apr 20

Lecture, Notes, Pyrrhuloxia Lab Intro

Memory Management

Hoopoe

Apr 22

Lecture, Notes

LL Parsing and Left Recursion

12

Apr 27

Test 2 Due

Lecture, Notes

Apr 29

Lecture, Notes

LR Parsing

Pyrrhuloxia

13

May 04

Lecture, Notes

Register Allocation

May 06

Lecture, Notes

Type Systems

 

May 13

Test 3 (Due May 18)