Syllabus
one language, many languages, a programming-language programming language
a model of Racket as an extensible programming language
the syntax extension mechanism; fluidly embedded languages
project ideas due
syntactic interposition points; modules
languages as modules; statically embedded languages
types and type checking
statically typed, statically embedded languages
equipping a language with "ugly" syntax
Week 1 | ||
Jan 09 | Languages as Abstractions | Examples of Languages |
Jan 12 | POPL (no class) | |
Week 2 | ||
Jan 16 | A Simple Model of Macros | S-expressions Transformations |
Jan 18 | continued | |
Week 3 | ||
Jan 23 | Compile-time Functions Parsing Syntax | Racket Macros |
Jan 26 | Michael Ballantyne, Lexical Scope | |
Week 4 | ||
Jan 30 | Scope; Languages; Modules | Simple Languages |
Feb 02 | Modules and Interposition Points | |
Week 5 | ||
Feb 06 | Modules as Languages | More Languages |
Feb 09 | Types and Type Checking | |
Week 6 | ||
Feb 13 | Stephen Chang, Macros and Types | Racket Extension Languages (2) |
Feb 15 | Leif Andersen, Making Movies | |
Week 7 | ||
Feb 20 | Stephen Chang, Macros, Types, | Typed Embedded Languages |
Feb 23 | Stephen Chang, Turnstile (1) | |
Week 8 | ||
Feb 27 | Turnstile (2) + Idea Presentations | Projects |
Mar 02 | Idea Presentations | |
Week 9 | ||
Mar 06 | SPRING BREAK | |
Mar 09 | SPRING BREAK | |
Week 10 | ||
Mar 13 | – snow day – | |
Mar 16 | Assignment 7 presentations | Projects |
Week 11 | ||
Mar 20 | Stephen Chang, Parsing Tools | |
Mar 23 | Non-standard Computation | |
Week 12 | ||
Mar 27 | Rioux | |
Mar 30 | ||
Week 13 | ||
Apr 03 | ||
Apr 06 | ||
Week 14 | ||
Apr 10 | ||
Apr 13 | ||
Week 15 | ||
Apr 17 |