CS 440: Programming Languages


  • 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




Reading and References

Development Tools and Resources

Exam Catalog