Computation and Deduction (15-851)
- Instructor: Frank Pfenning,
fp@cs, WeH 8127, x8-6343
- Times: Tu Th 1:30-2:50
- Room: WeH 5409
- Credits: 1 CS core unit, 12 university units
We explore the theory of programming languages using deductive
systems. We 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 Elf 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 Elf and
examples will be available on-line for experimentation.
This course is an updated version of the course on Computation
and Deduction in the Spring of 1994.
Hardcopies of the course notes will be handed out and are available
from my secretary (see below). The course directory is
, this home page is at
. Other pointers:
This is an introductory graduate course with no formal pre-requisites,
but an exposure to functional programming and type systems would be
helpful. Enterprising undergraduates are welcome to attend this course.
Credit (1 CS core unit, 12 university units) can be earned by doing
homework (which will include some programming assignments) and a term
paper. Homework is assigned weekly.
email@example.com, WeH 8106,
The course can be divided into the following parts: (1) functional
programming, (2) logic and logic programming, (3) advanced type systems
and reasoning about programs. In addition we introduce the logical
framework LF and its implementation in the constraint logic programming
language Elf as a meta-language in which the topics of the course are
formalized and implemented.
Please refer to the tentative schedule for
more detailed information.
[ C&D Home
© Frank Pfenning 1992-1997