/~didier/.common/index.en /~didier/.common/lectures.en.s /~didier/.common/research.en /~didier/.common/software.en
"Elegance is not optional." -- Richard A. O'Keefe
didierverna.info
/~didier/.common/topleft Object Approaches to Programming /~didier/.common/topright

Approches Objet de la Programmation

EPITA / Ing 1 / AOP

Bienvenue sur la page d'accueil du cours de Programmation Orientée Objet donné à l'EPITA en première année du cycle Ingénieur. Vous trouverez ci-dessous les transparents associés à chaque chapitre du cours.

This course on object oriented programming is divided in two different parts. The first part deals with the classical approach (class-based, static typing, single dispatch) while the second part presents a more general, multi-paradigm approach (still class-based, but also dynamically typed, functional, and with multiple dispatch and a meta-object protocol).

Chapter 0 relates the history of the paradigm, its origin and its evolution.

Title Slides
00. Introduction PDF (fr, en)

AOP 1: Fondamentaux et Approches Classiques

Part one presents the “classical” approach, that is, the most commonly used today. This is the approach of languages such as C++ and Java, which are both used for illustration purposes. The characteristics of this approach are the concepts of “class” for structuring information, “message passing” (single dispatch) for modelling dynamic behavior, all of this in the general context of statically typed languages.

In this part, we present the fundamental concepts underlying this approach and the basic modelling principles that go with it. We also exhibit its limitations and emphasize on the tight connection of those limitations to the underlying languages specificities.

Title Slides Companion Code
01. Classes et Objets PDF (fr, en) tar gz
02. Agrégation, Composition, Héritage PDF (fr, en) tar gz
03. Surcharge, Masquage, Ré-écriture PDF (fr, en) tar gz

AOP 2: Approches alternatives

Part two presents an alternative approach to object orientation as described in part one. Although still based on the concept of class, this approach features a number of distinctive traits, in parrticular: dynamic typing, multiple dispatch, and meta-object protocol. Our goal here is to demonstrate that there is no single view on object orientation, and also that the weaknesses of the classical approach disappear in this more expressive version.

Title Slides Companion Code
04. CLOS: Common Lisp Object System PDF tar gz
05. CLOS Avancé PDF tar gz
06. Étude de Cas 1: Méthodes Binaires PDF tar gz
06. Étude de Cas 2: Design Patterns PDF tar gz
/~didier/.common/btmleft /~didier/.common/btmright
French Flag English Flag
Copyright © 2006 -- 2024 Didier Verna didier@lrde.epita.fr
Last modification: Thursday November 07 2024 at 12:12