CS 440: Programming Languages

Announcements

  • 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

Calendar

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 8 Big Step Semantics big-step.pdf Harper ch. 2
Mar 13 - Mar 15 Spring Break
Mar 20 Big Step Semantics (continued) big-step.pdf Harper ch. 2
Mar 22 Midterm Exam
Mar 27 Lambda Calculus lambda-calculus.pdf λ-calculus Tutorial
Mar 29 - Apr 3 Axiomatic Semantics and Hoare Logic axiomatic.pdf
Apr 5 - Apr 10 Type Systems and Unification type-systems.pdf
Apr 12 - Apr 17 Continuation Passing Style 10-continuations.rkt
Apr 19 First-class Continuations 11-callcc.rkt BR: Continuations

The following abbreviations for reading materials are used in the lecture calendar:

Assignments

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 20 Interpreters cs440lang/mp3 76

Resources

Syllabus

Staff

Reading and References

Development Tools and Resources

Exam Catalog