DESCRIPTION: We will explore the theory of programming languages
using deductive systems. We will use such systems to specify, implement,
and verify properties of functional and logic programming languages. The deductive approach to the specification
of
programming languages has become standard practice, and one of the
goals of this course is to provide a good working knowledge of how to engineer such language descriptions.
Throughout the course we will use Twelf as a uniform meta-language in which
we can express specification, implementation, and meta-theory of the object languages we are considering. An
implementation of Twelf and examples will be available on-line for experimentation.
PREREQUISITES: There are no formal pre-requisites, but an exposure
to functional programming and type systems might be helpful. The course
is open to enterprising undergraduates by permission of the instructor.
NOTES: Material connected with the
course (slides, notes, source code, etc.) will be available on-line.
CONTACT: Crary, WeH 8127, x8-7687