Cours INF6120 – Programmation fonctionnelle et logique
1er cycle
3 crédits
Informatique
Magistral
Objectifs
Faire l’acquisition de nouvelles techniques et stratégies de programmation par l’apprentissage des concepts fondamentaux des langages de programmation fonctionnels et logiques. Apprécier l’apport de ces langages au développement logiciel.
Sommaire du contenu
La récursion comme méthode générale de résolution de problèmes. Bref historique de la programmation fonctionnelle. Effet de bord, référence immuable et évaluation des expressions. Répartition par appariement de motifs. Fonctions comme argument et valeur de retour. Stratégies d’évaluation des arguments. Polymorphisme et déduction des types. Fermetures, curryage et application partielle. Fonctions d’ordre supérieur (map, reduce/fold, filter). Concurrence et parallélisme en programmation fonctionnelle. Bref historique de la programmation déclarative et logique. Règles, inférence et clauses de Horn. Recherche par retour-arrière et déduction. Unification et résolution. Coupure et négation. Programmation par contraintes, consistance d’arc, de chemins et problèmes de satisfaction de contraintes. Comparaison des approches de programmation logique et par contraintes.
Modalité d’enseignement
Ce cours comporte une séance obligatoire de laboratoire (2 heures).