Professional Documents
Culture Documents
Chapitre 3
Types Abstraits de Donnes
Ces oprations nous permettent de manipuler des chanes de caractres dans un algorithme
tout en ignorant la manire dont les chanes sont reprsentes sur la machine (mme chose
pour les entiers, les rels).
Donc, il faut pour chaque nouveau type de disposer un nombre suffisant doprations
manipulant des informations de ce type.
2. Dfinition
Labstraction des donnes est une mthode consiste sparer :
Dune part, la faon dutiliser les informations dun nouveau type : cest ce que lon
appellera spcifier un type.
De lautre part, les moyens permettant lutilisation de ce type : ce que lon appellera
raliser un type.
http://berrehouma.olympe-network.com
1
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
diffrence : date, date entier /*nombre des jours sparant les deux dates*/
jour_de_la_semaine : date chane de caractre
en_jour : date entier /* la date est exprime en jour partir du 1/1/2000 */
ajouter_jour : date, entier date
anne : date entier
mois : date entier
jour : date entier
dfinir_une_date : entier, entier, entier date /* crer une date partir de 3 entiers*/
On a dfini les oprations sur le type date (on connat quelles oprations, on peut effectuer
sur ce type de donnes). Ces dfinitions ne sont pas suffisantes pour dfinir prcisment
leffet de ces oprations. Une manire pour dcrire ces effets consiste crire des
quations qui mettent en rapport ces oprations.
Exemple
Signature : la signature dfinie pour chaque opration son nom et son profil ( les sortes des
paramtres et la sorte du rsultat).
http://berrehouma.olympe-network.com
2
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Exemple dans la sorte naturel la signature (le profil) de lopration addition est le suivant :
plus (+) est une opration qui a deux paramtres de sorte naturelle , et qui produit un
rsultat de sorte naturelle.
Pair : naturel boolen
Zro : naturel
zro est une opration constante qui na pas des paramtres et retourne un naturel qui sera
toujours le mme.
Opration dite interne : si elle rend un rsultat dune sorte dfinie. Toutes valeur
dune sorte dfinie est le rsultat dune opration interne.
Elle sert construire les valeurs de sorte
Exemple lopration successeur permet de construire tous les entiers partir de
la constante 0. succ(0)=1, succ(1) =2, succ(succ(0))=2
Opration dite observateur :si elle au moin un argument dune sorte dfinie, et
elle rend un rsultat dune sorte prdfinie.
Elle sert vrifier les valeurs dune sorte
Exemple lopration qui permet de vrifier si un nombre naturel est pair ou non.
A partir des oprations primitives, on peut par la suite enrichir le nouveau TAD par ajout
doprations non primitives.
Les oprations qui nont pas des arguments sappellent des oprations constantes.
http://berrehouma.olympe-network.com
3
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Quand on crit une signature dun TAD, on donne les oprations internes et les
observateurs sur la sorte dfinie. On najoute pas des oprations sur les sortes prdfinies.
Exemples
Sorte
rationnel
Utilise
entier,boolen
Oprations
r : entier,entier rationnel
num : rationnel entier
den : rationnel entier
equivalent : rationnel, rarionnel boolen
inverse : rationnel rationnel
Sorte
vecteur
Utilise
lment, entier,boolen
Oprations
vecteur : entier,entier vecteur
changer_ime : vecteur,lment,entier vecteur
ime : vecteur,entier lment
borne_inf :vecteur entier
borne_max : vecteur entier
init : vecteur, entier boolen
6. Les Axiomes
Le problme est de donner une signification ou une smantique au nom de la signature, aux
sortes et aux oprations.
Pour dfinir un TAD, on nonce les proprits des oprations sous forme daxiomes.
Dfinition dune terme : cest une expression construite laide des oprations, des
variables et qui respecte la signature.
http://berrehouma.olympe-network.com
4
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Exemple
Zro
Pair(zro)
Y+x+zro
Les axiomes dcrivent les proprits des oprations sous forme dquivalence entre termes
Exemple
x+y = y+x (= signifie quivalent) (+) est une opration commutative
x+zro =zro
En gnrale, on trouve une valeur dune expression en la rduisant laide des axiomes
une expression quivalente qui ne contient que des constantes et des oprations
gnratrices.
Remarque on peut remplacer les quations par dautre quation contenant des conditions
b=vrai t1=t2
t1 = si b alors t2 sinon t3
b=faux t1=t3
Rgle1 : il faut crire les axiomes qui dfinissent le rsultat de la composition des
observateur avec toutes les oprations interne.
Rgle2 : dans le cas o certaines opration internes restent indfinies, il faut crire les
axiomes qui dfinissent les rsultats de ces oprations internes avec dautre oprations
internes.
num(r(x,y) )= x
den(r(x,y)) = y
equivalent(r(x,x), r(1,1)) = vrai
r(a,b) = mul (mul(a, inverse(b)), r(1,1))
inverse(r(a,b)) = r(b,a)
http://berrehouma.olympe-network.com
5
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
8. Prconditions
Ce sont des proprits qui doivent tre vrifies pour que lexcution de lopration soit
possible.
Les proprits sont destines restreindre lutilisation des oprations des oprandes
vrifiant certains prdicats.
Remarque si une opration na pas des prconditions, c'est--dire que le domaine de cette
opration est dfini sur tout le produit cartsien des sortes dargument
Syntaxe opration (arguments) est dfinie ssi condition
Sorte
nom de la sorte dfinie
Utilise
noms des sortes prdfinies
Oprations
signatures des oprations
Prconditions
Prconditions ventuelles pour certaines oprations
Axiomes
Sorte
tableau
Utilise
Entier,lment, boolen
Oprations
tab : entier, entier tableau
changer_ime : tableau, lment, entier tableau
ime : tableau,entier lment
borne_inf : tableau entier
borne_sub : tableau entier
init : tableau, entier boolen
Prconditions
ime(T,i) est dfinie ssi borne_inf(t) i borne_sub(T)
Axiomes
borne_inf(T) i borne_sub(T) ime(changer_ ime(T,i,e),i)= e
borne_inf(T) i borne_sub(T) et borne_inf(t) j borne_sub(T) et ij
ime (ime(changer_ ime(T,i,e),j),j)= ime(T,j)
Init (tab (i,j),k) = faux
borne_inf(T) i borne_sub(T) init(changer_ ime(T,i,e),i)= vrai
borne_inf(T) i borne_sub(T) et ij init(changer_ ime(T,i,e),j)= init(T,j)
borne_inf(tab(i,j))= i
borne_sub(tab(i,j))= j
borne_inf(changer_ ime(T,i,e))= borne_inf(T)
avec T: tableau, e: lment , I :entier
http://berrehouma.olympe-network.com
6
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
A partir dune spcification de TAD, on peut crer des types concrets. On choisie un
langage de programmation, ses propres types concrets dobjets et les oprations sur les
valeurs de ces types nous permettent dimplmenter une spcification de TAD.
La ralisation dun type abstrait consiste donc :
1. choisir une structure interne des donnes construite partir des types de base du
langage (prdfinis) et/ou des types dj dfinis (tableaux ,pointeur,enregistrement
..) ceci veut dire quon doit fixer une reprsentation des objet du TAD spcifi par
ceux du langage de programmation.
2. analyser et programmer chaque opration du TAD. La programmation et raliser en
tenant compte de la structure choisie.
Les oprations du TAD sont ralises sans modification doprandes, on a alors des
vritables fonctions mathmatiques
Exemple
Ajouter un lment un tableau, le nouveau tableau porte un nom diffrent et lancien
tableau est entirement prserv
Remarque
Trs coteux, car on doit souvent dupliquer des objets ou parties dobjets.
Dynamique (procdural)
Les oprations du TAD sont ralises avec modification des oprandes pour une question
defficacit
Exemple
Quand on ajoute un lment un tableau, le nouveau tableau remplace lancien, il est
dsign par le mme identificateur, c'est--dire quil occupe le mme emplacement
mmoire donc lancien tableau est perdu.
Cette solution est efficace en temps et en espace mmoire.
Remarques
a. On peut mlanger les deux points de vues, en crant pour certaines oprations une
version statique et une version dynamique.
b. Une reprsentation est correcte si elle vrifie la spcification algbrique : on doit
trouver que chaque axiome est respecte par les opration quand elles sont utilises
dans les cas prvus par les prconditions.
c. Plusieurs implmentations satisfaisant la spcification algbrique peuvent tre
ralises.
http://berrehouma.olympe-network.com
7
Support de Cours Algos & structures de donnes Mr BERREHOUMA N.
Dfinition
Une thorie logique quationnelle du premier ordre est dite consistante si elle ne contient
pas de contradiction, c'est--dire elle ne contient pas des thorme vrai = faux .
En spcification algbrique, on a un point de vue incrmentale un peu diffrent :
On suppose quon construit une spcification SPEC1 en utilisant un un SPEC0, on exige
alors en plus de la simple consistance logique.
Dfinition
Une spcification SPEC1 qui utilise une SPEC0 est consistante relativement SPEC0,si
on ne peut pas dmontrer dans SPEC0 un thorme nouveau
Exemple
Si on trouve pour une spcification un tableau T et un indice i tel quon puisse dmontrer
que ime(T,i)=0 et ime(T,I)=1, alors cette spcification nest pas consistante par raport au
TAD tableau
http://berrehouma.olympe-network.com
8