15-819: Domain-Specific Languages

Course Objectives

Hal Abelson says that teaching computational thinking is about teaching what is worth making. This course is about teaching what languages are worth making. After completing this course you should be able to:

  • Understand what a domain-specific language is, as well as the pros and cons of developing a domain-specific language.
  • Understand what it means to formally specify and prove properties about domain-specific languages.
  • Understand how to implement domain-specific languages and program analyses.
  • Evaluate the usefulness of existing domain-specific languages, as well as their descriptions in research papers.