CS510 Section FSC - Fundamentals of Staged Computation - Winter 2004 - Lecture Notes
The following are powerpoint slides (and associated code) from the lectures.
- Lecture 1
- Slides:
Acknowledgements, Course details, Academic Integrity,
Introduction to Staging, Meta-programs, Introduction to MetaML.
- Lecture 2
- Slides:
More details about MetaML and MetaOcaml. Lift, Cross stage persistence, New kinds
of errors caused by staging.
- Lecture 3
- Slides:
Transformers vs generators, Exponentially large generators,
staging the shortest path algorithm, Introducing let to "flatten"
generated code. The staged Merge program.
Code from the lecture.
- Lecture 4
- Slides: The
calculator problem. Optimal generation vs post generation optimization.
Staging interpreters. Binding time improvements.
Code from the lecture.
- Lecture 5
- Lecture 6
- Slides:
Monads. Three interpreter extensions: Print, Divide, Multiple Values.
Monads are patterns. Monads in MetaML. Higher order Type Constructors,
Rank-2 polymorphism in Recordes in MetaML. The Do-Return syntax
in MetaML. The final interpreter.
Code from the lecture.
- Lecture 7
- Lecture 8
- Slides:
An operational semnatics for MetaML subset. Interpreters for
the lambda calculus. Using constants to encode arithmetic, if-then-else,
and recursion. Adding staging. Using Covers.
Code from the lecture.
- Lecture 9
- Lecture 10
- Slides:
A Type system for MetaML. Typing rules, contexts, judgements. DeBriujn Indices.
MetaML as a language with a sliding band of contexts. Omega as a tool
for experimenting with type systems. The Natural number example in Omega.
MetaML as an Generalized Algebraic Datatype in Omega. The eval
function, the build function. Example ill-typed programs.
Code from the lecture.
- Lecture 11
- Lecture 12
- Lecture 13
- Slides:
Reduction semantics for MetaML. Reduction semantics,
Rewriting systems, Coherence, Confluence. Level annotated terms.
Big-step semantics.
- Lecture 14
Back to CSE583 Home Page