The third machine problem has been released! Note that machine problem writeups have been removed from the website; they can be accessed via the README.md
file displayed in the repository cloned for you once you accept the assignment.
Going forward, please use this form to notify us of late day usage (instead of emailing us) on assignments.
The second machine problem has been released!
The first machine problem has been released!
We will be using Discord to facilitate student discussion, and to run open TA office hours. If you aren't already a member, please join at https://discord.gg/UcDxj6FF2c
Welcome to the Fall 2023 edition of CS 440: Programming Languages!
The lecture calendar is tentative and may be updated. All lecture source files can be found in the class GitHub repository.
Date | Topic | Notes | Reading(s) |
---|---|---|---|
Aug 23 | Syllabus and Course overview | slides-intro.pdf | Syllabus |
Aug 25 | Compilers, Interpreters, and Racket | slides-racket.pdf | CI ch. 2 |
Aug 30 | Intro to Racket and Basic types | 01-intro.rkt | RG chs. 2-3 |
Sep 1 | Functions and more special forms | 02-functions.rkt | RG ch. 4 |
Sep 6 | Lists and Recursion | 03-recursion.rkt | BR: Lists |
Sep 8 - Sep 13 | Higher-order functions | 04-hofs.rkt | |
Sep 15 - Sep 20 | Macros and Syntax transformers | 05-macros.rkt | RG ch. 16 |
Sep 22 | Building Languages | 06-lang.rkt | BR: stacker |
Sep 27 - Sep 29 | Building an Interpreter | 07-interpreters.rkt | PLAI chs. 3-4, RG chs. 5, 12 |
Oct 4 | Closures | 08-closures.rkt | PLAI chs. 5-6 |
Oct 6 | Desugaring | 09-desugaring.rkt | |
Oct 11 | Building interpreters: Recap | interpreters-recap.pdf | |
Oct 13 - Oct 18 | Big Step Semantics | big-step.pdf | Harper ch. 2 |
Oct 20 | Midterm Exam | ||
Oct 25 | Small Step Semantics | ||
Oct 27 - Nov 1 | Lambda Calculus | lambda-calculus.pdf | λ-calculus Tutorial |
Nov 3 - Nov 8 | Continuation Passing Style | 10-continuations.rkt | |
Nov 10 | First-class Continuations | 11-callcc.rkt | BR: Continuations |
Nov 15 - Nov 17 | Axiomatic Semantics and Hoare Logic | axiomatic.pdf | |
Nov 22 - Nov 24 | Thanksgiving Break | ||
Nov 29 - Dec 1 | Type Systems and Unification | type-systems.pdf | |
Dec 8 | Final Exam @ 10:30AM in PH 131 |
The following abbreviations for reading materials are used in the lecture calendar:
If you plan on submitting an assignment late, you must use this late day notice form to let us know by the assignment deadline.
Released | Due | Writeup / Resources | Repo Invite | Max Points |
---|---|---|---|---|
Sep 8 | Sep 17 | Basics and Recursion | cs440lang/mp1 | 40 |
Sep 18 | Sep 29 | HOFs and Symbolic manipulation | cs440lang/mp2 | 55 |
Oct 9 | Oct 22 | Interpreters | cs440lang/mp3 | 76 |
Oct 30 | Nov 8 | Big-step semantics, Sample solutions | — | 45 |
Nov 13 | Nov 22 | Lambda Calculus, Sample solutions | — | 45 |
Nov 25 | Dec 3 | Axiomatic Semantics, Sample solutions | — | 20 |