This is an approximate list of topics that we will cover:
- 1. Tuesday, January 12th
- Introduction to Programming Languages
- 2. Friday, January 15th
- Introduction to Scheme
- 3. Tuesday, January 19th
- BNF, Grammars, Simple Parsing, match
- 4. Friday, January 22nd
- Semantics: Implementing an Evaluator for AE
- 5. Tuesday, January 26th
- Intro to Typed Scheme, The AE Language,
The need For Bindings
- 6. Friday, January 29th
- Bindings & Substitution, The WAE Language,
Formal Specs
- 7. Tuesday, February 2nd
- Lazy vs Eager, de Bruijn Indices,
First Class Functions, Implementing FLANG
- 8. Friday, February 5th
- More on Implementing First-Class Functions,
Scheme Functions: lambda
- 9. Tuesday, February 9th
- “Point-Free” Programming, Substitution Caches,
Dynamic vs Lexical Scope,
Implementing Lexical Scope: Closures and Environments
- 10. Friday, February 12th
- More Closures, Types of Evaluators, Feature Embedding
- 11. Tuesday, February 16th
- Recursion without the Magic, the Y Combinator
- 12. Friday, February 19th
- The Property of Y, Typing Y,
Minimal Language: Lambda Calculus
- 13. Tuesday, February 23rd
- Alternative Encoding, Recursive Binder: letrec,
Implementing Recursion using letrec
- 14. Friday, February 26th
- Boxes and Mutation, rec Using a Cyclic Structure
- 15. Tuesday, March 9th
- Variable Mutation, State and Environments,
Implementing Objects
- 16. Friday, March 12th
- Toy, “Compilation” and Partial Evaluation
- 17. Tuesday, March 16th
- Compilation contd, Lazy evaluation in Scheme
- 18. Friday, March 19th
- Lazy Programming, Call by Need vs by Name,
Implementing Laziness
- 19. Tuesday, March 23rd
- Implementing Laziness: Sloth,
Implementing Call by Need
- 20. Friday, March 26th
- Side Effects in a Lazy Language,
Designing DSLs, Syntax Transformations: Macros
- 21. Tuesday, March 30th
- Macros, Macro Problems, Scheme Macros,
Implementing Laziness in Scheme, Recursive Macros
- 22. Friday, April 2nd
- Macro Conclusions, Types, What are Types?,
The Picky Language
- 23. Tuesday, April 6th
- Typing Control & Recusion
- 24. Friday, April 9th
- Typing Data, Type Soundness
- 25. Tuesday, April 13th
- ??
- 26. Friday, April 16th
- ??
- 27. Tuesday, April 20th
- ??