Course 2024-2025

Introduction to functional and logic programming [INFOB316]

  • 5 credits
  • 30h+30h
  • 1st quarter
Language of instruction: French / Français
Teacher: Vanhoof Wim

Learning outcomes

The objective of this course is to introduce students to declarative programming by studying the basics of functional and logic programming.

Content

This course comprises two parts. In a first part we develop the functional programming paradigm. We study the basic concepts underlying this paradigm (functions, reduction strategies, strict and lazy evaluation) and we develop some more advanced topics such as higher-order programming, monomorphic and polymorphic typings, and type classes. All concepts are studied using the language Haskell. In the second part, we develop the logic programming paradigm. We study the Prolog language and its use of Horn logic, unification, selection rule, and negation. We develop some examples of non-deterministic programming. Through the course, we pay attention to programming techniques traditionally associated with these paradigms (e.g. the use of meta-interpreters) and the techniques by which these languages and the involved technologies can be implemented effectively.


Prerequisites

Méthodes de programmation [INFOB233]

Teaching methods

Lectures supplemented by ex-cathedra exercice sessions on paper. Students will also be asked to do a medium-sized programming task in Haskell.

Evaluations

Written exam involving programming exercices as well as questions on comprehension and knowledge of the material. 

Recommended readings

  • G. Hutton, Programming in Haskell. Cambridge 2007.
  • S. Thompson, The Craft of Functional Programming, Pearson 1999.
  • R. Bird, Introduction to Functional Programming using Haskell, Prentice-Hall, 1998.
  • P. Hudak, J. Peterson, J. Fasel. A Gentle Introduction to Haskell. Available on-line at http://www.haskell.org/tutorial
  • S. Peyton-Jones (ed.). Haskell 98 Language and Libraries - The Revised Report
  • H. Abelson, G.J. Sussman, J. Sussman. Structure and Interpretation of Computer Programs. The MIT Press, 1985
  • A. Aho, J. Ullman. Concepts fondamentaux de l'informatique. Freeman and Company, 1992. Dunod, Paris, 1993.
  • W. F. Clocksin and C. S. Mellish, Programming in Prolog, 2003.
  • M. Bramer, Logic Programming with Prolog, Springer, 2005.
  • U. Nilsson and J. Maluszynski, Logic, Programming and Prolog (2ed), John Wiley & Sons Ltd.
  • L. Sterling, E. Shapiro. The art of Prolog. MIT Press, 1986.
  • Y. Deville. Logic Programming: Systematic Program Development. Addison-Wesley, 1990.

Language of instruction

French / Français

Location for course

NAMUR

Organizer

Faculté d'informatique
rue Grandgagnage 21
5000 NAMUR
P. 081725252
F. 081724967
secretariat.info@unamur.be

Degree of Reference

Undergraduate Degree