“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 234 — #244
i
i
i
i
i
i
i
i
234
5
• La programmation avec état explicite
L’héritage est expliqué dans le chapitre 6, qui est complètement consacré au style
objet.
L’état explicite
Une abstraction de données est dite avec état si elle utilise l’état explicite. Sinon
elle est sans état ou déclarative. Le chapitre 3 donne deux exemples, une pile (voir
section 3.5) et un dictionnaire sans état (voir section 3.8.4).
La décision de faire une abstraction avec ou sans état dépend des soucis de modularité, de concision et de facilité de raisonnement. Nous remarquons que les « valeurs »
dans une abstraction de données, comme elle est définie ici, peuvent avoir de l’état.
C’est un léger abus de terminologie car les valeurs de base que nous utilisons sont
toutes sans état (des constantes).
5.4.2 Cinq manières pour emballer une pile
Prenons le type Stack T de la section 3.5 et voyons comment l’adapter à certaines
des huit possibilités. Nous donnons cinq possibilités utiles. Nous commençons par la
plus simple, la version ouverte déclarative. Nous utilisons ensuite cette version pour
construire quatre versions sécurisées. La figure 5.2 montre les cinq possibilités.
(par ex. dictionnaires en Oz)
comme dans Prolog et Scheme
comme dans Smalltalk et Java
Ouverte,
Sécurisée,
Sécurisée,
Sécurisée,
Sécurisée,
déclarative et non agrégée
déclarative et non agrégée
déclarative et agrégée
avec état et agrégée
avec état et non agrégée
Le style PDA avec objets déclaratifs
Le style ouvert déclaratif
Le style PDA avec objets à état
Le style ADT comme dans beaucoup
de langages (par ex. entiers en Java)
Le style ADT avec valeurs à état
Figure 5.2 Cinq manières pour emballer une pile.
La figure 5.3 fait une illustration graphique des quatre versions sécurisées et de leurs
différences. Dans cette figure, les rectangles avec des bords épais marqués « Pop »
sont des procédures à appeler. Les flèches entrantes sont les entrées et les flèches
sortantes sont des sorties. Les rectangles avec des bords minces et trous de serrure sont
les structures de données emballées qui font les entrées et sorties des procédures Pop.
Les structures de données emballées peuvent seulement être déballées à l’intérieur des
i
i
i
i
i
i
i
i
234
5
• La programmation avec état explicite
L’héritage est expliqué dans le chapitre 6, qui est complètement consacré au style
objet.
L’état explicite
Une abstraction de données est dite avec état si elle utilise l’état explicite. Sinon
elle est sans état ou déclarative. Le chapitre 3 donne deux exemples, une pile (voir
section 3.5) et un dictionnaire sans état (voir section 3.8.4).
La décision de faire une abstraction avec ou sans état dépend des soucis de modularité, de concision et de facilité de raisonnement. Nous remarquons que les « valeurs »
dans une abstraction de données, comme elle est définie ici, peuvent avoir de l’état.
C’est un léger abus de terminologie car les valeurs de base que nous utilisons sont
toutes sans état (des constantes).
5.4.2 Cinq manières pour emballer une pile
Prenons le type Stack T de la section 3.5 et voyons comment l’adapter à certaines
des huit possibilités. Nous donnons cinq possibilités utiles. Nous commençons par la
plus simple, la version ouverte déclarative. Nous utilisons ensuite cette version pour
construire quatre versions sécurisées. La figure 5.2 montre les cinq possibilités.
(par ex. dictionnaires en Oz)
comme dans Prolog et Scheme
comme dans Smalltalk et Java
Ouverte,
Sécurisée,
Sécurisée,
Sécurisée,
Sécurisée,
déclarative et non agrégée
déclarative et non agrégée
déclarative et agrégée
avec état et agrégée
avec état et non agrégée
Le style PDA avec objets déclaratifs
Le style ouvert déclaratif
Le style PDA avec objets à état
Le style ADT comme dans beaucoup
de langages (par ex. entiers en Java)
Le style ADT avec valeurs à état
Figure 5.2 Cinq manières pour emballer une pile.
La figure 5.3 fait une illustration graphique des quatre versions sécurisées et de leurs
différences. Dans cette figure, les rectangles avec des bords épais marqués « Pop »
sont des procédures à appeler. Les flèches entrantes sont les entrées et les flèches
sortantes sont des sorties. Les rectangles avec des bords minces et trous de serrure sont
les structures de données emballées qui font les entrées et sorties des procédures Pop.
Les structures de données emballées peuvent seulement être déballées à l’intérieur des
