Programmation fonctionnelle et logique
- Code de l'UE INFOB316
-
Horaire
30 30Quadri 1
- Crédits ECTS 5
- Langue
- Professeur Vanhoof Wim
A la fin du cours, les étudiants devraient maîtriser les techniques de base en programmation fonctionnelle et logique et leurs incarnations dans les langages Haskell et Prolog.
L'objectif du cours est d'exposer une introduction aux techniques de programmation fonctionnelle et logique.
Ce cours vise à étudier le paradigme de programmation fonctionnelle et logique. Pour chaque paradigme, on y présente d'abord les concepts de base (fonction, réduction, évaluation, pour la programmation fonctionnelle, logique de Horn, stratégie de sélection, négation) avant d'aborder des sujets plus avancés, comme les fonctions d'ordre supérieur, les types polymorphes, les monades ou encore quelques exemples de programmation non déterministe. Une attention particulière est aussi portée aux techniques de programmation adaptées à ces paradigmes.
Partie 1: Programmation déclarative 1. Programmation fonctionnelle (Haskell) - Valeurs, expressions et réductions - Stratégies de réduction et l'évaluation paresseuse - Les expressions lambda - Fonctions à plusieurs arguments (currying) - Opérateurs - Composition de fonctions - Signatures de type polymorphes - Récursion terminale - Types algébriques: énumeration, union, types produits - Le polymorphisme dans les définitions de type - Fonctions élémentaires - Preuve par induction structurelle - Les listes infinies 2. Programmation logique (Prolog) - De la programmation fonctionnelle à la programmation logique - Eléments de base de la programmation logique - Structures de données élémentaires - Programmation non-déterministe - Quelques particularités de Prolog : programmation d'ordre supérieur et l'opérateur cut - Les "difference lists" - Introduction à la méta-programmation
Le cours est conçu comme une suite d'exposés où se mèlent théorie et applications pratiques. Aux travaux pratiques, les étudiants sont amenés à des travaux de synthèse prenant la forme d'exercices de programmation de taille moyenne.
Cet unité d'enseignement est globalement évalué au moyen d'un examen écrit où l'étudiant se voit confronté à des questions de compréhension, de connaissance et d'application.
Formation | Programme d’études | Bloc | Crédits | Obligatoire |
---|---|---|---|---|
Bachelier en sciences informatiques | Standard | 0 | 5 | |
Bachelier en sciences informatiques | Standard | 3 | 5 |