Type abstrait
Un type abstrait (ADT) est un modèle mathématique pour les types de données, un type de données étant défini par son comportement (sémantique) du point de vue de l’utilisateur des données, en particulier dans les valeurs possibles, opérations possibles sur des données de ce type et comportement de ces opérations.
Cela contraste avec les structures de données, qui sont des représentations concrètes de données et représentent le point de vue d'un implémenteur, pas d'un utilisateur.
Formellement, un ADT peut être défini comme une "classe d'objets dont le comportement logique est défini par un ensemble de valeurs et un ensemble d'opérations" ; Ceci est analogue à une structure algébrique en mathématiques. Ce que l’on entend par "comportement" varie d’un auteur à l’autre, les deux principaux types de spécifications formelles du comportement étant la spécification axiomatique (algébrique) et un modèle abstrait ; elles correspondent respectivement à la sémantique axiomatique et à la sémantique opérationnelle d'une machine abstraite . Certains auteurs incluent également la complexité de calcul ("coût"), à la fois en termes de temps (pour les opérations de calcul) et d'espace (pour la représentation des valeurs). En pratique, de nombreux types de données courants ne sont pas des tables ADT, l'abstraction n'étant pas parfaite, les utilisateurs doivent être conscients des problèmes de débordement arithmétique dus à la représentation. Par exemple, les nombres entiers sont souvent stockés sous forme de valeurs de largeur fixe (nombres binaires 32 bits ou 64 bits), ce qui entraîne un dépassement du nombre entier si la valeur maximale est dépassée.
Les ADT sont un concept théorique en informatique utilisé dans la conception et l’analyse d’algorithmes, de structures de données et de systèmes logiciels . Ils ne correspondent pas aux caractéristiques spécifiques des langages informatiques. Les langages informatiques courants ne prennent pas directement en charge les ADT spécifiés formellement. Cependant, diverses caractéristiques linguistiques correspondent à certains aspects des ADT et peuvent facilement être confondues avec les ADT proprement dites; ceux - ci comprennent abst types RACT, les types de données opaques, protocoles, et la conception par contrat . Les ADT ont été proposés pour la première fois par Barbara Liskov et Stephen N. Zil les en 1974, dans le cadre du développement du langage CLU .