This is an archived page and may be obsolete; the current pages are at http://www.iit.edu/csl/cs
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.
Textbook
Essentials of Programming Languages (2nd ed). Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes, MIT Press, ISBN 0-262-06217-8, 2001.
Objectives
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.”
Prerequisites
CS 440 or consent of instructor.
Syllabus
- Formal Description of Programming Languages and Semantics
- Operational Semantics vs Denotational Semantics
- Parameter Passing Modes
- Functional Programming - Theory, Usage and Implementation Issues
- Modeling control: Continuations - Continuation passing interpreters
- Logic Programming -- Theory and Usage
- Emerging Language Paradigms:
- Coordination languages
- Concurrent constraint programming
- Post object-oriented languages (Aspect-Oriented Programming, Subject-Oriented Programming, Feature-Oriented Programming, Component-Based Programming, etc.)
References
- The Formal Semantics of Programming Languages, An Introduction.; Glynn Winskel, MIT Press, ISBN 0-262-23169-7.
- Semantics of Programming Languages: Structures and Techniques.; Carl A. Gunter, MIT Press, ISBN 0-262-07143-6.
- Advanced Topics in Types and Programming Languages. Benjamin C. Pierce, MIT Press, ISBN 0-626-16228-8.
- Research papers that will be distributed in class.
Edited February 2006 (html, css checks)