Abstract Data Types

This article contains a description of the concepts related to abstract data types (ADTs). Specifically, the presentation contains a explanation of the syntax and semantics of ADTs and uses algebraic semantics to describe the properties of the operations on the data types: stack, queue, set, and bag. A program for a stack ADT in the language C is presented to illustrate a practical implementation. Two different versions of the program use an array and a linked list as the underlying data structures to implement the stack ADT without any effect on its interface and hence the program that uses the stack. Keywords: abstraction; abstract data types; ADTs; data type; algebraic semantics; information hiding; stack; queue; set; bag