Everything about Abstract data type
Mathematical model for data types
In computer science, an abstract data type (ADT) is a mathematical model for data types, defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations. This mathematical model contrasts with data structures, which are concrete representations of data, and represent the point of view of an implementer, not a user. For example, a stack has push/pop operations that follow a Last-In-First-Out rule, and can be concretely implemented using either a linked list or an array. Another example is a set which stores values, without any particular order, and no repeated values. Values themselves are not retrieved from sets; rather, one tests a value for membership to obtain a Boolean "in" or "not in". Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Abstract data typeA 5-minute orientation
- Skim a recent paper: Semantic Code Refactoring for Abstract Data TypesInfluential work since 2022
- Pick up a classic book: Data abstraction and problem solving with C++The most-reprinted book on the subject
- Read the landmark paper: Abstract Data Type Specification in the Affirm SystemCited 68 times
- Go sideways: Data typeA closely related topic
- Go sideways: Algebraic semantics (computer science)A closely related topic
📖 Definitions
Noun A data type defined only by data properties and operations to be performed on the data without any specification as to how the data will be represented or the operations performed.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Abstract Data Type Specification in the Affirm System
Polymorphic type inference and abstract data types
The rational numbers as an abstract data type
Abstract data type systems
An abstract data type for name analysis
An abstract data type for real numbers
Continuous Abstract Data Types
On the practical need for abstraction relations to verify abstract data type representations
🆕 Influential since 2022
Semantic Code Refactoring for Abstract Data Types
Enabling Type Checking on Columns in Data Frame Libraries by Abstract Interpretation
Abstract 3048: CSI-Microbes: Identifying cell-type specific intracellular microbes from single-cell RNA-seq data
Abstract 5038: Applying reproducible genomic data science methods for the analysis of a rare tumor type
Abstract 4970: Multi-modal machine learning approaches for predicting cancer type and Gleason grade leveraging public TCGA data
📚 Books worth reading
Data abstraction and problem solving with C++Frank M. Carrano, Paul Helman · 1995
Abstract data typesNell B. Dale, Henry Mackay Walker · 1996
Recent trends in data type specificationWorkshop on Specification of Abstract Data Types (8th 1991 Dourdan, France) · 1993
Recent trends in data type specificationWorkshop on Specification of Abstract Data Types (10th 1994 Santa Margherita, Italy) · 1995
Map FrameworkMark McKenney, Markus Schneider · 2016
Data structures with abstract data types and PascalDaniel F. Stubbs · 1985
Recent trends in data type specificationWorkshop on Specification of Abstract Data Types (11th 1995 Oslo, Norway) · 1996
Understanding AdaKenneth C. Shumate · 1984
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Data type In computer science and computer programming, a data type (or simply type) is a collection or grouping of data values, usually specified by a set of possible…
- Algebraic semantics (computer science) In computer science, algebraic semantics is a formal approach to programming language theory that uses algebraic methods for defining, specifying, and…
- List (abstract data type) In computer science, a list or sequence is a collection of items that are finite in number and in a particular order. An instance of a list is a computer…
- Vienna Development Method The Vienna Development Method (VDM) is one of the longest-established formal methods for the development of computer-based systems. Originating in work…
- ASN.1 Abstract Syntax Notation One (ASN.1) is a standard interface description language (IDL) for defining data structures that can be serialized and deserialized…
- Double-ended queue Input Input Output Output as a queue as a stack In computer science, a double-ended queue (abbreviated as deque — /dɛk/ DEK), is an abstract data type…
- Forth (programming language) Forth is a stack-oriented programming language and interactive integrated development environment designed by Charles H. "Chuck" Moore and first used by…
- Data structure In computer science, a data structure is a way to organize and store data that is usually chosen for efficient access to data. More precisely, a data structure…