School of Computer Science
[ C&D Home | Schedule | Code | Assignments | Notes | Projects | Elf ]

Computation and Deduction (15-851)
Spring 1997

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.

Course Material

Hardcopies of the course notes will be handed out and are available from my secretary (see below). The course directory is /afs/cs/user/fp/courses/comp-ded/ , this home page is at . Other pointers:
  • lecture schedule
  • Elf code
  • assigned exercises
  • course notes
  • suggested projects
  • Elf language reference
  • Prerequisites

    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.


    Rosemary Hornyak,, WeH 8106, x8-3853

    Course Outline

    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 | Schedule | Code | Assignments | Notes | Projects | Elf ]

    © Frank Pfenning 1992-1997