CS 6905 Advanced Topics in Computer Science:
Functional and Logic Programming

 

Course Outline Jan.-Apr. 2004


Syllabus
Assigns
Notes
Projects
Resources

Functional programming starts with nested function applications, as found in most programming languages, and leads to powerful higher-order and concurrent languages: it developed from Lisp and Scheme to Standard ML, Haskell, Erlang, and Pizza (a version of Java). Logic programming starts with Horn-logic facts and rules and leads to logic markup languages for business rules: it developed from Prolog to BRML, RuleML, and Common Logic. This course will treat the core of functional and logic programming in an integrated manner as an example of declarative programming. Applications include Web Services that provide logic inferences and/or functional transformations over XML data. These notions are introduced using the small functional-logic language Relfun.

 


 

Instructor

Harold Boley,

NRC

Classes

Thursdays 1:00-2:10 PM and 2:15-3:20 PM

 

Jan 15 and Feb 5: Head Hall, Room H 303

Apr 1           : NRC Building, Training Room B

All other times : Head Hall, Room ADI C25

 

Detailed instructions on the locations of Functional and Logic Programming classes:

 

Room H 303: One level above the E level, accessed via the stairs 'uphill' the Head Rest restaurant,

and also known as the 'Airplane room' (because a large airplane model hangs down from the ceiling).

 

Room ADI C25: Enter Head Hall using the main entrance (from Dineen Drive), and enter the lobby, then go through the doors to the left (beside the stairs and elevator).  The room is the third door on the left, and has a plaque clearly identifying it as the ADI lab.

Course Web Site

 

http://www.cs.unb.ca/~boley/FLP

 


Marking

30% assignments (3)

20% project documentation (ca. 10 soft pages)

20% project presentation (ca. 12 soft slides)

30% exam


Lecture Schedule Overview

Overview of declarative programming.

10%

Introduction to purely functional programming.

15%

Introduction to pure logic programming.

15%

A functional-logic integration based on call-by-value.

15%

Semantics of the functional-logic language Relfun.

10%

Basics of the Relfun implementations.

10%

The functional-logic XML syntaxes of RFML and RuleML

15%


 

Reference Material

Books

and

Articles

The Integration of Functions into Logic Programming: From Theory to Practice

Michael Hanus

Journal of Logic Programming, Vol. 19,20, pp. 583-628, 1994

http://www.informatik.uni-kiel.de/~mh/publications/papers/JLP94.html

 

Functional and Logic Programming - Proceedings of the Third Fuji International Symposium

Masahiko Sato and Yoshihito Toyama (Eds.)

http://www.wspc.com/books/compsci/3709.html

 

A Tight, Practical Integration of Relations and Functions

Harold Boley

http://smi-web.stanford.edu/people/boley/lnai1712.html

 

Journal

The Journal of Functional and Logic Programming (JFLP)

http://danae.uni-muenster.de/lehre/kuchen/JFLP/

 

Online

Resources

Functional Logic Programming

http://www.informatik.uni-kiel.de/~mh/FLP/

 

Functional Logic

http://directory.google.com/Top/Computers/Programming/Languages/Logic-based/Functional_Logic/

http://dmoz.org/Computers/Programming/Languages/Logic-based/Functional_Logic/

 

Integrations of functional and logic programming subject area

http://www.dcs.qmul.ac.uk/SEL-HPC/Articles/GeneratedHtml/functional.logic.html

 

Curry

http://www.informatik.uni-kiel.de/~mh/curry/

 

Relfun

http://www.relfun.org/


Maintained by
Harold Boley