the stack state and returns the resulting stack state stack_T stack_pop(stack_T s); // removes the top item from the stack state and returns the resulting stack state stack_Item stack_top(stack_T s); // returns the top item of the stack state ADT libraries Many modern programming languages, such as C++ and Java, come with standard libraries that implement several common ADTs, such as those listed above. Built-in abstract data types The specification of some programming languages is intentionally vague about the representation of certain built-in data types, defining only the operations that can be done on them. Therefore, those types can be viewed as "built-in ADTs". Examples are the arrays in many scripting languages, such as Awk, Lua, and Perl, which can be regarded as an implementation of the abstract list. See also Concept (generic programming) Formal methods Functional specification Generalized algebraic data type Initial algebra Liskov substitution principle Type theory Walls and Mirrors Notes Citations References Further reading External links Abstract data type in NIST Dictionary of Algorithms and Data Structures Data types Type theory