Skip to content

    Abstract Data Type

    Editorially reviewed on: 2 sources
    Your reading view

    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

    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.

    Sources

    Quellenprüfung: 09.10.2026. Anwendungsbeispiele sind mögliche Szenarien, keine behaupteten Kundenfälle.

    Editorially reviewed on:

    Next step

    Put knowledge into practice