In this course, we will introduce what programmers need to know about programming languages and their implementations. 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. As the final project, you will get to design and implement a small language of your choice, from start to finish.

Administrative Information

Ras Bodik
Alvin Cheung

Course Assistants:
Maaz Bin Safeer Ahmad
Talia Ringer
Ben Tebbs

Please see calendar for up-to-date office hours information.

Contact: Please use Piazza to contact the staff.

Mondays & Wednesdays 2:30pm-3:50pm, THO 101.

(AA) Thursdays 1:30pm-2:20pm, MEB 242.
(AB) Thursdays 2:30pm-3:20pm, MEB 242.