In this course, we will introduce you to what programmers need to know about programming languages. You will design and implement small languages, called domain-specific languages, which are the glue of the complex software that we write today. You will also learn about principles and implementation of large, general-purpose languages and about how to exploit modern features of these languages.
Overview of the course its weekly project assignments.
The Final Project. In lieu of the written final exam, you will design and implement a small language.
More about the philosophy of the course.
Links to previous incarnations of Hack Your Language!, recommended books, tools, and blogs.