Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Type abstrait — Wikipédia
Type abstrait — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir ADT.

En informatique, un type de donnée abstrait (en anglais, abstract data type ou ADT) est une spécification mathématique[1] d'un ensemble de données[2] et de l'ensemble des opérations qu'on peut effectuer sur elles. On qualifie d'abstrait ce type de donnée car il ne spécifie pas comment les données sont représentées ni comment les opérations sont implémentées.

Exemples

[modifier | modifier le code]

Les types abstraits les plus utilisés sont :

  • arbre binaire[3]
  • conteneur
  • dictionnaire ou tableau associatif
  • ensemble
  • file
  • file de priorité
  • Graphe
  • liste
  • multiensemble
  • pile
  • Union-find

Structure

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (décembre 2017). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Un type abstrait est composé de cinq champs[réf. nécessaire] :

  • Type abstrait ;
  • Utilise ;
  • Opérations ;
  • Pré-conditions ;
  • Axiomes.

Ces cinq éléments sont souvent réunis sous l'acronyme : TUOPA.

Type abstrait

[modifier | modifier le code]

Le champ « Type abstrait » contient le nom du type que l'on est en train de décrire et précise éventuellement si celui-ci n'est pas une extension d'un autre type abstrait. Par exemple, on écrira « Type abstrait : Pile » pour créer un type nommé Pile qui décrit ce qu'est une pile et « Extension Type abstrait : Pile » si on désire l'étendre (on étend un type abstrait en lui assignant de nouvelles opérations non définies lors de la première spécification).

Utilise

[modifier | modifier le code]

Le champ « Utilise » contient les types abstraits que l'on va utiliser dans celui que l'on est en train de décrire. Par exemple, le type abstrait Pile que l'on définit va utiliser dans sa spécification le type abstrait Booléen, et on écrira « Utilise : Booléen ».

Opérations

[modifier | modifier le code]

Le champ « Opérations » contient le prototypage de toutes les opérations. Par prototypage, on entend une description des opérations par leur nom, leurs arguments et leur retour.

Les opérations sont divisées en plusieurs types :

  • les constructeurs (permettent de créer un objet du type que l'on est en train de définir) ;
  • les transformateurs (permettent de modifier les objets et leur contenu) ;
  • les observateurs (fonction donnant des informations sur l'état de l'objet).

Exemple d'opération pour le type « Type abstrait : Pile » :

             créer : → Pile

L'opération « créer » est un constructeur. En effet, cette fonction crée un objet de type pile. De plus, elle n'a pas besoin d'argument pour créer cette pile. Ceci est montré par l'absence d'indication à gauche de la flèche.

Pré-conditions

[modifier | modifier le code]

Le champ « Pré-conditions » contient les conditions à respecter sur les arguments des opérations pour que celles-ci puissent avoir un comportement normal. On peut parler ici d'ensemble de définition des opérations.

Axiomes

[modifier | modifier le code]

Le champ « Axiomes » contient une série d'axiomes pour décrire le comportement de chaque opération d'un type abstrait. Chaque axiome est une proposition logique vraie.

Exemple commenté : la pile

[modifier | modifier le code]

On rappelle qu'une pile est une structure de données simple, respectant le principe LIFO (« Last In First Out »), c'est-à-dire que l'on accède toujours au dernier élément que l'on vient d'ajouter à cette structure.

Type abstrait : Pile

Utilise : Booléen, Élément

Opérations :

créer : → {\displaystyle \rightarrow } {\displaystyle \rightarrow } Pile

empiler : Pile × {\displaystyle \times } {\displaystyle \times } Élément → {\displaystyle \rightarrow } {\displaystyle \rightarrow } Pile

sommet : Pile ⇀ {\displaystyle \rightharpoonup } {\displaystyle \rightharpoonup } Élément

reste : Pile ⇀ {\displaystyle \rightharpoonup } {\displaystyle \rightharpoonup } Pile

estVide : Pile → {\displaystyle \rightarrow } {\displaystyle \rightarrow } Booléen

insérerFin : Pile × {\displaystyle \times } {\displaystyle \times } Élément → {\displaystyle \rightarrow } {\displaystyle \rightarrow } Pile

On tient compte ici des opérations de base de la pile, ainsi que de l'opération insérerFin permettant d'insérer un élément à la fin de la pile (cette opération permettra de présenter la récursivité en type abstrait). Le symbole «  ⇀ {\displaystyle \rightharpoonup } {\displaystyle \rightharpoonup } » signifie que l'opération est soumise à des pré-conditions.

On a ici un constructeur : créer ; trois transformateurs : empiler, reste et insérerFin ; et deux observateurs : sommet et estVide. L'opération empiler est considérée par certains comme un constructeur car on constate que toute pile est de la forme « créer() » ou « empiler(p, e) ».

Pré-conditions : p ∈ {\displaystyle \in } {\displaystyle \in } Pile

défini(sommet(p)) ⇒ {\displaystyle \Rightarrow } {\displaystyle \Rightarrow } ¬ {\displaystyle \neg } {\displaystyle \neg }estVide(p)

défini(reste(p)) ⇒ {\displaystyle \Rightarrow } {\displaystyle \Rightarrow } ¬ {\displaystyle \neg } {\displaystyle \neg }estVide(p)

Ces pré-conditions correspondent au fait que l'on ne peut pas « voir » le sommet ou prendre le reste d'une pile vide.

Axiomes : p ∈ {\displaystyle \in } {\displaystyle \in } Pile et e, f ∈ {\displaystyle \in } {\displaystyle \in } Élément

(P1) sommet(empiler(p, e)) = e

(P2) reste(empiler(p, e)) = p

(P3) estVide(créer()) = vrai

(P4) estVide(empiler(p, e)) = faux

(P5) insérerFin(créer(), e) = empiler(créer(), e)

(P6) insérerFin(empiler(p, f), e) = empiler(insérerFin(p, e), f)

Notes et références

[modifier | modifier le code]
  1. ↑ Manfred Broy, Martin Wirsing et Claude Pair, « A Systematic Study of Models of Abstract Data Types », Theoretical Computer Science, vol. 33,‎ 1984, p. 139-174
  2. ↑ Sébastien Veigneau, Approches impérative et fonctionnelle de l'algorithmique : applications en C et en CAML Light, Springer Science & Business Media, 1999 (lire en ligne)
  3. ↑ http://pageperso.lif.univ-mrs.fr/~denis.lugiez/Enseignement/L2/Cours/cours4.pdf

Voir aussi

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • type abstrait, sur le Wiktionnaire
  • Ensemble (informatique)
  • File (structure de données)
  • File de priorité
  • Liste (informatique)
  • Vecteur (structure de données)
  • Graphe (type abstrait)


v · m
Types de données
Non interprétée
  • Bit
  • Byte
  • Trit
  • Tryte
  • Mot
Numérique
  • Bignum
  • Complexe (en)
  • Décimal (en)
  • Virgule fixe
  • Virgule flottante
  • Entier
    • Non signé (en)
  • Intervalle
  • Rationnel (en)
Texte brut
  • Caractère
  • Chaîne de caractères
Pointeur
  • Adressage mémoire
    • Physique
    • Virtuelle
  • Référence
Composite (en)
  • Type algébrique de données
    • Généralisé
  • Tableau
  • Tableau associatif
  • Classe
  • Dépendant
  • Égalité (en)
  • Inductive (en)
  • Liste
  • Objet
    • Métaobjet
  • Option (en)
  • Produit
    • Enregistrement
  • Ensemble (set)
  • Vecteur
  • Union (en)
    • Disjointe
Autres
  • Booléen
  • Type vide
  • Collection
  • Conteneur
  • Type énuméré
  • Exception
  • Fonction
  • Opaque (en)
  • Type récursif
  • Sémaphore
  • Flux
  • Top (en)
  • Type class (en)
  • Type unité
  • Void
Articles liés
  • Type abstrait
  • Structure de données
  • Généricité
  • Kind (en)
    • Métaclasse
  • Parametric polymorphism (en)
  • Primitive data type (en)
  • Interface
  • Subtyping (en)
  • Type constructor (en)
  • Conversion de type
  • Type system (en)
v · m
Éléments de programmation informatique
Bibliothèque logicielle
  • Bibliothèque standard
  • Espace de noms
  • Framework
  • Gabarit
  • Interface
  • Interface de programmation (API)
Vocabulaire
  • Algorithme
  • Expression
  • Indentation
  • Instruction
  • Ligne de code
  • Opérateur
  • Pseudo-code
  • Ramasse-miettes
Fonctions
  • Dispatch multiple
  • Factorisation
  • Fonction imbriquée
  • Fonction de rappel
  • Fonction d'ordre supérieur
  • Fonction récursive
  • Généricité
  • Opérande
  • Paramètre
  • Polymorphisme
  • Procédure
  • Signature de type
  • Surcharge
Objet
  • Classe
  • Constructeur
  • Destructeur
  • Encapsulation
  • Héritage
  • Héritage multiple
  • Instance
  • Méthode
Événementiel Inversion de contrôle
Code source
Structures de données
  • Arbre
  • Enregistrement
  • Ensemble
  • File
  • Liste
  • Liste chaînée
  • Pile
  • Sémaphore
  • Tableau
  • Tas
  • Type abstrait
  • Vecteur
Déclarations
  • Affectation
  • Convention de nommage
  • Pointeur
  • Portée
  • Référence
  • Tableau associatif
  • Type énuméré
  • Type récursif
  • Typage statique
  • Variable
  • Variable globale
  • Variable locale
Structures de contrôle
  • Case
  • Eval
  • For
  • Goto
  • Switch
  • While
Fonctions usuelles
  • Concaténation
  • Incrémentation
  • malloc
  • printf
Outil de développement
  • Environnement de développement
  • Générateur de documentation
  • Gestion de versions
  • Modèle
  • Patch
  • Spécification
Folklore
  • Hello world
  • Principe KISS
  • Langage de programmation exotique
Catégories :
  • Programmation informatique
  • Développement logiciel
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail de l'informatique théorique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Type_abstrait&oldid=228920581 ».
Catégories :
  • Structure de données
  • Théorie des types
  • Méthode formelle
Catégories cachées :
  • Article manquant de références depuis décembre 2017
  • Article manquant de références/Liste complète
  • Article à référence nécessaire
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Informatique théorique/Articles liés
  • Portail:Mathématiques/Articles liés
  • Portail:Sciences/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id