The third machine problem has been released.
The second machine problem has been released.
The first machine problem has been released.
Welcome to the Spring 2024 edition of CS 440: Programming Languages!
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/dD6mUe5y
Here's the shared lecture session link for today
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) |
|---|---|---|---|
| Jan 10 | Syllabus and Course overview | slides-intro.pdf | Syllabus |
| Jan 12 | Compilers and Interpreters | slides-racket.pdf | CI ch. 2 |
| Jan 17 - Jan 19 | Intro to Racket and Basic types | 01-intro.rkt | RG chs. 2-3 |
| Jan 24 | Functions and more special forms | 02-functions.rkt | RG ch. 4 |
| Jan 26 | Lists and Recursion | 03-recursion.rkt | BR: Lists |
| Jan 31 - Feb 2 | Higher-order functions | 04-hofs.rkt | |
| Feb 7 - Feb 9 | Macros and Syntax transformers | 05-macros.rkt | RG ch. 16 |
| Feb 14 - Feb 16 | Building an Interpreter | 07-interpreters.rkt | PLAI chs. 3-4, RG chs. 5, 12 |
| Feb 21 | Closures | 08-closures.rkt | PLAI chs. 5-6 |
| Mar 1 | Desugaring | 09-desugaring.rkt | |
| Mar 6 | Building interpreters: Recap | interpreters-recap.pdf | |
| Mar 13 - Mar 15 | Spring Break | ||
| Mar 20 | Big Step Semantics | big-step.pdf | Harper ch. 2 |
| Mar 22 | Midterm Exam | ||
| Mar 27 - Mar 29 | Big Step Semantics (continued) | big-step.pdf | Harper ch. 2 |
| Apr 3 - Apr 10 | Lambda Calculus | lambda-calculus.pdf | λ-calculus Tutorial |
| Apr 12 - Apr 17 | Axiomatic Semantics and Hoare Logic | axiomatic.pdf | |
| Apr 19 - Apr 24 | Continuation Passing Style | 10-continuations.rkt | |
| Apr 26 | First-class Continuations | 11-callcc.rkt | BR: Continuations |
| Mon, Apr 29 | Final Exam @ 8AM in SB 111 | Final Exam Coverage |
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 |
|---|---|---|---|---|
| Jan 31 | Feb 11 | Basics and Recursion | cs440lang/mp1 | 40 |
| Feb 14 | Feb 25 | HOFs and Symbolic manipulation | cs440lang/mp2 | 55 |
| Mar 4 | Mar 24 | Interpreters | cs440lang/mp3 | 76 |
| Mar 28 | Apr 7 | Big-step semantics, Sample solutions | — | 45 |
| Apr 8 | Apr 17 | Lambda Calculus, Sample solutions | — | 45 |
| Apr 18 | Apr 26 | Axiomatic Semantics, Sample solutions | — | 20 |