Abstract Data Type
The short answer · 18 words
In short
An abstract data type defines data about permitted operations and their behavior without specifying the concrete internal implementation.
Flow-alerta.cab (2026): Abstract Data Type. https://flow-alerta.cab/en/glossar/abstract-data-type. Editorially reviewed on: 09 October 2026.
How much detail would you like?
Practical
Fundamental to maintainable software, clear interfaces and interchangeable implementations. ADTs help decouple changes inside modules from other parts of a program.
Possible example: A shop system defines a shopping cart via operations such as addItem(), removeItem() and total(). The specific storage can be changed later without all calling components having to be adapted.
Possible applications: clean domain models, APIs, backend components and integrations; especially relevant if systems are to be maintained in the long term or individual technologies are to remain interchangeable.
At a glance
- Core
- What matters for an ADT is what a data type can do — such as insert, remove or read — and which rules apply. Whether it uses an array, a linked list or another structure internally remains hidden behind the interface.
- Use
- Fundamental to maintainable software, clear interfaces and interchangeable implementations. ADTs help decouple changes inside modules from other parts of a program.
- Example
- Possible example: A shop system defines a shopping cart via operations such as addItem(), removeItem() and total(). The specific storage can be changed later without all calling components having to be adapted.
- Limits
- Equate ADT with concrete data structure; leak internal details to the outside; define operations without clear invariants; make interfaces so broad that abstraction loses its usefulness.
In context
Data Structure
A data structure organizes data in such a way that certain access and change operations can be executed efficiently.
Application Programming Interface (API)
Defined interface through which software uses functions or data of other components.
Application Programming Interface (API)
Defined interface through which software uses functions or data of other components.
Questions about this term
Is a Stack an ADT?
Yes, if it is defined by its behavior and operations such as push/pop.
Is a concrete array implementation itself the ADT?
No, it is a possible implementation.
All details and background
What matters for an ADT is what a data type can do — such as insert, remove or read — and which rules apply. Whether it uses an array, a linked list or another structure internally remains hidden behind the interface.
ELI5 – Explained simply
You operate a drinks machine through buttons and its output slot. You do not need to know how its internal mechanism works; what matters is which actions are allowed and what happens as a result.
Why it matters in practice
Fundamental to maintainable software, clear interfaces and interchangeable implementations. ADTs help decouple changes inside modules from other parts of a program.
Example
Possible example: A shop system defines a shopping cart via operations such as addItem(), removeItem() and total(). The specific storage can be changed later without all calling components having to be adapted.
Pitfalls and limits
- Equate ADT with concrete data structure; leak internal details to the outside; define operations without clear invariants; make interfaces so broad that abstraction loses its usefulness.
Origin & history
Abstract data types were systematically developed in programming-language research in the 1970s. Barbara Liskov and Stephen Zilles published Programming with Abstract Data Types in 1974.
Use in mid-sized companies
- Possible applications: clean domain models, APIs, backend components and integrations; especially relevant if systems are to be maintained in the long term or individual technologies are to remain interchangeable.
Related terms
- Data structure
- Interface
- API
- Encapsulation
- Information Hiding
- Abstraction
Matching Flow-alerta service
Websites & web applicationsWebsites & web applications: technical web implementation.Matching tool / use case
View use casesPossible use: a stack with push/pop and defined behavior; TypeScript interfaces can describe operations, behavior and invariants require additional specification and testing.Sources
- web.mit.eduMIT 6.102, Abstract Data Types
- people.csail.mit.eduMIT, Bibliografie Liskov & Zilles (1974)
Quellenprüfung: 09.10.2026. Anwendungsbeispiele sind mögliche Szenarien, keine behaupteten Kundenfälle.
Editorially reviewed on: