L'unité d'enseignement « Modèles de programmation séquentielle en Objective Caml » est
une UE de niveau (300) spécialisation relevant de la licence d'informatique.
Elle possède un volume de 6 ECTS et
s'étend sur 12 semaines. Elle est placée sous la responsabilité de Chailloux, emmanuel.
Description
Ce module présente les principaux modèles de programmation séquentielle (fonctionnel, impératif, objets) dans le cadre confortable du typage statique d'Objective Caml.
La réutilisabilité de composants logiciels est explorée d'une part du point de vue du typage (polymorphisme paramétré et objet) et d'autre part du point de vue structures (classes, modules simples et paramétrés). Enfin l'interopérabilité avec des composants issus d'autres langages est illustrée en s'interfaçant avec C.
- noyau fonctionnel et polymorphisme paramétrique
- traits impératifs
- valeurs mutables fonctionnelles
- objets et polymorphisme objet
- modules paramétrés et types abstraits de données
- réutilisabilité : comparaison classes et modules paramétrés
- interfaçage avec C et interopérabilité
Préalables et buts pédagogiques
Bibliographie
Xavier Leroy et al.
The Objective Caml system : documentation and user's manual
(cf. )
Emmanuel Chailloux, Pascal Manoury et Bruno Pagano.
Développement d'Applications avec Objective Caml.
O'Reilly, 1995 (cf. )
Guy Cousineau et Michel Mauny.
Approche fonctionnelle de la programmation.
Dunod, 1995.
Pierre Weis et Xavier Leroy.
Le langage Caml
Dunod, 1999.
Contenu indicatif par semaine
Noyau fonctionnel I : valeurs, fonctions, types de base, expressions fonctionnelles
Noyau fonctionnel II : déclarations de types et filtrage de motifs
Exceptions : déclenchement, récupération et style de programmation
Traits impératifs : valeurs physiquement modifiables et structures de contrôle
Modules simples : séparation interface et implantation, compilation séparée, types abstraits de données
Modèle mémoire : copie et partage, récupérateur automatique de mémoire
Interface avec C : appels externes, passage d'arguments, GC, callbacks, exceptions
Environnement de développement : bibliothèques, interface graphique et outils
Objet I : classes, instances, héritage, liaison tardive
Objet II : sous-typage et polymorphisme objet
Typage et inférence de types
Réutilisabilité : extension des données et des traitements (modules paramétrés, objets et variants)
Annales
Les annales de cette UE sont
ici.