CS510 Theory and Practice of Functional Logic Programming

Instructors: Sergio Antoy and Andrew Tolmach

Class Meetings: Fri 9-11:40, FAB 150

Description

This course will provide a rapid introduction to the basic ideas and implementation techniques for functional logic programming. FLP combines the distinctive features of functional programming (algebraic data types, lazy evaluation, polymorphic typing, first-class functions, monadic I/O) and logic programming (logic variables, non-determinism, search) seamlessly through narrowing and residuation. The course will address three kinds of questions: Why are these features useful? What is their underlying theory? How can they be implemented? Lectures will be augmented with weekly programming assignments in Curry (a leading functional logic language) and Haskell (a leading functional language). Exercises will serve both to illustrate the use of these languages and to illuminate the underlying theory and implementation issues. Prior exposure to functional or logic programming will be useful, but is not required.

Format

Regular lectures. Weekly assigned readings. Weekly homework exercises in Curry and/or Haskell, using the PAKCS (Curry) and HUGS (Haskell) programming environments. Comprehensive final exam.

Course site

Course material will be posted as it becomes available at http://www.cs.pdx.edu/~antoy/Courses/TPFLP/index.html.

Preliminary List of Topics

(Subject to change. Count on approximately one week per topic.)


Contacts: antoy@cs.pdx.edu or apt@cs.pdx.edu
Last updated: Thu Feb 13 10:54:06 PST 2003