“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 232 — #242
i
i
i
i
i
i
i
i
232
5
• La programmation avec état explicite
affiche false. Il est logique que les cellules ne soient pas égales, puisque changer le
contenu d’une cellule ne changera pas le contenu de l’autre. Mais nos deux cellules
ont le même contenu :
{Browse @X==@Y}
Le Browser affiche true. C’est une pure coïncidence ; cette comparaison ne restera
pas forcément vraie pendant toute l’exécution. Nous concluons en faisant le constat
que les alias ont les mêmes identités. L’exemple suivant :
X={NewCell 10}
Y=X
{Browse X==Y}
affiche true car X et Y sont des alias et ils font donc référence à la même cellule.
5.4 L’ABSTRACTION DE DONNÉES
Une abstraction de données est une manière abstraite d’utiliser des données, c’està-dire que nous pouvons utiliser les données sans dépendre d’une implémentation
particulière. Une abstraction de données se compose d’un ensemble d’instances qui
peuvent être utilisées selon un jeu de règles, que nous appelons son interface. Parfois,
nous utiliserons librement le terme « type » quand nous parlerons d’une abstraction
de données. L’utilisation d’une abstraction a beaucoup d’avantages sur l’utilisation
directe de son implémentation : l’abstraction est en général bien plus simple (car
l’implémentation n’est pas limitée par la taille de son interface), le raisonnement sur
les données peut être bien plus simple (car elles ont leurs propres propriétés) et le
système peut garantir que les données sont utilisées correctement (car nous ne pouvons
pas toucher l’implémentation sauf en passant par l’interface).
La section 3.5 a montré une forme d’abstraction de données, à savoir le type de
données abstrait ou ADT : un ensemble de valeurs avec un ensemble d’opérations
sur ces valeurs. Nous avons défini une pile en ADT avec des valeurs de pile et les
opérations d’empiler (« push ») et de dépiler (« pop »). Mais les ADT ne sont pas la
seule méthode pour le traitement abstrait des données. Maintenant que nous avons
ajouté l’état explicite au modèle, nous pouvons présenter un jeu plus complet de
techniques pour faire l’abstraction de données.
5.4.1 Huit manières pour organiser une abstraction de données
Une abstraction de données avec une même fonctionnalité peut être organisée de
différentes façons. Par exemple, dans la section 3.5 nous avons vu qu’une abstraction
simple comme une pile peut être ouverte ou sécurisée. Maintenant, nous introduisons
Précédent

- 247/370

Suivant