CSE 6341: Foundations of Programming Languages
Autumn 2014

Important Links


Students: primarily for graduate students; also for undergraduates interested in PL who did well in 3321/625 and 3341/655
Instructor: Mike Bond
Grader: Anupama Nandi

To contact Mike or Anupama, please make a Piazza post rather than sending e-mail. Whenever it's reasonable to do so, please make your post public, since other students may be interested in the question or answer.


Theory of programming languages: formal ways of defining syntax and semantics of PLs. Attribute grammars; operational and axiomatic semantics; type systems; some aspects of concurrency and runtime systems.

Topic Slides Reading
Attribute Grammars 1 per page   6 per page
Last updated 27 August 2014
Pagan 2.1-2.3, 3.2
Stansifer 2.2-2.3
Slonneger and Kurtz 3.1-3.2
Operational Semantics for Lisp 1 per page   6 per page
Last updated 19 September 2014
McCarthy (all)
Slonneger and Kurtz 6.1
Pagan 5.2
Operational Semantics for an Imperative Language 1 per page   6 per page
Last updated 15 October 2014
Winskel 2
Slonneger and Kurtz 8.4-8.6
Axiomatic Semantics 1 per page   6 per page
Last updated 12 November 2014
Stansifer 2.4, 9
Winskel 6
Slonneger and Kurtz 11
Concurrency 1 per page   6 per page
Last updated in 2013
Primary reading: Goetz 1, 2, 3, 11, and 16
Other reading ideas: Memory Models,
The Java Memory Model (Sec. 1–4), and
A Case for Concurrency Exceptions;
more papers here
Type Systems 1 per page   6 per page
Last updated in 2013
Pierce Ch. 3, 8, 11, 15
Some Aspects of Managed Languages,
Especially Garbage Collecton
1 per page   6 per page
Last updated in 2013
Uniprocessor Garbage Collection Techniques:
Sections 1 and 2;
Sections 4-7 may also be
interesting and useful

As noted above, I haven't posted updated slides for this semester yet.

Acknowledgments: Slides on Attribute Grammars, Operational Semantics for Lisp, Operational Semantics for an Imperative Language, Axiomatic Semantics, and Type Systems were originally created by Nasko Rountev. Some of the GC slides (part of the Managed Languages topic) were originally created by Kathryn McKinley.

The course has no required textbook, but there will be readings from several books, listed below. The books with links are available online. The other three are on reserve at the Science and Engineering Library (now called the 18th Avenue Library).

The readings are important; class time is intended to supplement the readings. Similarly, attending class is important because the slides by themselves won't be enough to understand the material.

When and Where

The Google Calendar below will provide all scheduling information: class meetings, exams, assignment due dates, and instructor and grader office hours.

To make an appointment outside of scheduled office hours, please use Piazza to post privately to either the instructor or the grader (depending on whom you want to meet with). Include your available times for at least three upcoming weekdays.

When you arrive at office hours or a scheduled appointment, please alert the instructor or grader to your presence—by knocking or saying hi—even if they're meeting someone else at that time.

Links for importing the 6341 calendar into your calendar program (let me know if you have any problems):    XML    iCal    HTML


The SIGPLAN Education Board explains why senior undergrads should learn about the principles of PLs. I think the same reasons apply to grad students, especially grad students not primarily interested in PL.


Many thanks to Nasko Rountev and Neelam Soundarajan for materials, advice, and feedback. Many of the course materials are closely based on their materials.