- Languages and compilers to exploit multithreaded parallelism
- Implicit parallel programming using functional languages and their extensions
- Higher-order functions, non-strictness, and polymorphism
- Explicit parallel programming and nondeterminism
- The lambda calculus and its variants
- Term rewriting and operational semantics
- Compiling multithreaded code for symmetric multiprocessors and clusters
- Static analysis and compiler optimizations
This course is worth 4 Engineering Design Points.
Haskell compiler software is required to run the .hs files found on this course site.