Outils pour utilisateurs

Outils du site


formations:masters:ue:m1:pfa8

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
formations:masters:ue:m1:pfa8 [2025/01/29 10:44] – ↷ Liens modifiés en raison d'un déplacement. adminformations:masters:ue:m1:pfa8 [2025/01/29 10:46] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin
Ligne 1: Ligne 1:
 +~~NOTOC~~
 +
 +====== Programmation Fonctionnelle Avancée ======
 +
 +===== Description =====
 +
 +La programmation fonctionnelle est un des paradigmes principaux de programmation
 +que tout informaticien doit connaître. 
 +En particulier, elle permet de programmer très facilement avec des types de données
 +structurées (comme lors de la conception de compilateur).
 +Cette forme de programmation sans état est également
 +très importante pour le calcul distribué (voir MapReduce).
 +
 +On retrouve désormais des aspects de programmation fonctionnelle dans des langages
 +aussi répandus que Java et Python.
 +Néanmoins, l'utilisation d'un langage dédié est recommandé pour profiter au mieux
 +des possibilités de ce paradigme de programmation, en particulier au niveau du typage.
 +C'est pourquoi ce cours s'appuiera sur le langage OCaml.
 +
 +Ce module fait suite au cours de programmation fonctionnelle de licence 3 (PF5)
 +et se concentre directement sur un certain nombre d'aspects avancés de la programmation
 +fonctionnelle et d'OCaml en particulier (modules, paresse, monades, etc).
 +
 +Ce module est un module majeur du parcours LP (Langages et Programmation).
 +
 +===== Syllabus =====
 +==== Sujets centraux ====
 +
 +  - Le système de modules
 +  - Structure de données efficaces pour la programmation fonctionnelle
 +  - Evaluation paresseuse
 +  - Structures avec partage
 +  - Utilisation avancée du système de typage (variants polymorphes, GADT)
 +  - Monades
 +
 +
 +==== Sujets potentiellement traités ====
 +
 +  - Combinateurs
 +  - Parallélisme (Parmap)
 +
 +
 +===== Pré-requis =====
 +
 +Avoir suivi un premier cours de programmation fonctionnelle, comme par exemple le [[..:..:..:licence:2024-2025:ue:l3:pf5|cours PF5 de licence 3 ici-même]].