CS 6715 Functional-Logic Programming

 

Course Outline Jan.-Apr. 2006


Syllabus
Assigns
Notes
Projects
Resources

Functional-logic programming is a programming paradigm that integrates most of the features of the classical declarative paradigms, namely functional and logic programming. From functional programming it inherits named or anonymous functions, nested expressions, efficient reduction strategies, higher-order functions, and types. From logic programming it inherits named relations, logical variables, partial data structures, unification, and built-in search. The operational semantics of functional-logic languages is usually based on narrowing, a combination of unification for parameter passing and reduction as evaluation mechanism, which subsumes SLD-resolution and rewriting. Their model-theoretic semantics essentially extend relational Herbrand models by functional equations. Implementations can use interpreters, transformations into one of the component paradigms, or compilers for an extended Warren Abstract Machine (WAM). Applications include Semantic Web programs over metadata as well as Web Services that provide logic inferences and/or functional transformations over XML data. These notions are introduced in the course using the small functional-logic language Relfun and its serialisation in Functional RuleML. 


 

Instructor

Harold Boley,

NRC

Classes

Thursdays, 2:30 - 4:50 PM, with middle break (Start:  5 Jan. 2006)

H-E4 (from Dean’s Office walking to Head Hall Copy Centre, turn into left corridor, finding door E4 on your left)

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 Functional RuleML.

15%

Functional-logic Web Services.

10%


 

Reference Material

Course Slides

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

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

 

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

  

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/

 

Functional RuleML
http://www.ruleml.org/fun/

 


Maintained by
Harold Boley