This is an archived page and may be obsolete; the current pages are at

CS 540: Foundations of Programming Language Design

Course Description

The course expounds the basic motivations and philosophy underlying the applications of semantic techniques in programming language theory.  It emphasizes the structures used in semantics and the techniques that have been developed for relating various approaches to the semantics of programming languages.  The course not only provides students with hands-on-experience in different types of programming, it also exposes students to emerging language paradigms and the driving forces and design principles behind these paradigms.


Essentials of Programming Languages (2nd ed). Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes, MIT Press, ISBN 0-262-06217-8, 2001.


The goal of the course is expressed in this quote from Hal Abelson: “to change your view of your programming, and your view of yourself as a programmer. (To make) you see yourself as a designer of languages rather than only a user of languages, as a person who chooses the rules by which languages are put together, rather than only a follower of rules that other people have chosen.”


CS 440 or consent of instructor.



Edited February 2006 (html, css checks)