Course Description

The topics covered in this course include:

  • 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 …

The topics covered in this course include:

  • 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.

Learning Resource Types
Exams
Lecture Notes
Projects
Programming Assignments
Digital display with binary code.
Digital display with binary code. (Image courtesy of cyberhades on flickr. License: CC BY-NC.)