bgcolor=lightgreen width="100%"
Enseignement d'Approfondissement de Majeure 1

http://cristal.inria.fr/\home {remy}/poly/mot/ Langages à Objets


http://cristal.inria.fr/\home {remy}/ Didier Rémy



border=2 cellpadding=10 bgcolor=lightgreen width="100%"
Pour comprendre les principes et maîtriser la pratique de la programmation avec objets, les constructions de haut niveau objet, classe, héritage, liaison tardive seront décomposées en des mécanismes plus élémentaires enregistrement, fermeture, abstraction, récursion, étudiés au travers de différentes notions de typage statique, dynamique, surchargé, sous-typage, polymorphisme et sous l'angle de la programmation modulaire héritage simple et multiple, modules, mixins. Le cours s'appuyera sur les langages Java et http://caml.inria.fr/ocamlOcaml.     http://cristal.inria.fr/\home{remy}/Didier Rémy

Comprendre et maîtriser les objets

Les objets sont aujourd'hui une technique de programmation incontournable dans de nombreux domaines d'application.

Le but du cours est de comprendre et de maîtriser la programmation avec objets, ses aspects théoriques délicats et les motifs de programmation les plus avancés.

La programmation avec objets sera étudiée sous l'angle de la programmation modulaire et dans un environnement typé.

Cela permet de prendre du recul par rapport à telle ou telle approche, et de voir les objets comme un moyen et non un but.

Contrairement à une fausse idée trop souvent répandue, la programmation avec objets comporte de nombreuses difficultés intrinsèques (récursion ouverte, masquage et redéfinition, etc.). Le typage est un guide essentiel dans la compréhension de ces difficultés et leur maîtrise.

Dissection



    ·Nous décomposerons les constructions de haut-niveau:
  objets, classes, héritage, liaison tardive

en des mécanismes plus élémentaires:
  enregistrements, fermetures, abstraction, récursion

    ·Nous étudierons leur différentes techniques de typage:
  statique, dynamique, surchargé, sous-typage, polymorphisme

    ·Nous comparerons les différentes forme de modularité:
  héritage simple et multiple, wrappers, mixins, modules
.


Pratique

Le cours comportera une composante pratique importante.

Les langages Java (dont le noyau est supposé acquis) et Ocaml seront présentés en cours.

Les motifs de programmation: nous verrons quelques techniques et motifs typiques de programmation avec objets.

Le projet de programmation constitue une part importante de l'enseignement d'approfondissement. Deux exemples de projets de l'an passé:

    ·Mini gestionnaire de fenêtres.

    ·Librairie modulaire de calcul formel.




This document was translated from LATEX by HEVEA.