Niveau d'étude
Bac +3
Composante
Sciences Fondamentales et Appliquées
Période de l'année
Semestre 6
Description
Programme résumé :
- concepts fondamentaux ; expressions, définitions, fonctions, le calcul comme réduction d’expressions, la transparence référentielle, la récursivité, notion d’environnement ;
- notion de types (types produit et types somme) et de système de typage. Typage des expressions, inférence de types, curryfication. Liens avec la correction des programmes ;
- polymorphisme, variables de type ;
- les fonctionnelles (fonctions d’ordre supérieur) ; applications aux structures de données linéaires (listes, piles, files) et aux arbres. Points fixes et récursivité ;
- les différentes stratégies d’évaluation (forte et paresseuse) ;
- utilisation d’un langage de programmation fonctionnelle (OCaml), étude et comparaison de différents langages de programmation (Haskell, OCaml, Scheme) ;
- partie optionnelle :introduction aux aspects théoriques ; lambda-calcul, lien entre programmes et preuves (correspondance de Curry-Howard).
Objectifs
Comprendre les notions de bases de la programmation fonctionnelle, savoir les mettre en oeuvre et être autonome dans cette mise en oeuvre.
Heures d'enseignement
- CMCM6h
- TDTD14h
- TPTP6h
Pré-requis obligatoires
Algorithmique et programmation des deux premières années de licence d’Informatique.
Compétences visées
- Savoir mettre en oeuvre les bases de la programmation fonctionnelle et être autonome dans cette mise en oeuvre.
- Reconnaître les situations où la programmation fonctionnelle est plus adaptée qu'un autre paradigme de programmation.