Abstract Data Types and the Development of Data Structures Abstract data types can play a significant role in the development of software that is reliable, efficient, and flexible. This paper presents and discusses the application of an algebraic technique for the specification of abstract data types. Among the examples presented is a top-down development of a symbol table for a block structured language; a discussion of the proof of its correctness is given. The paper also contains a brief discussion of the problems involved in constructing algebraic specifications that are both consistent and complete. CACM June, 1977 Guttag, J. abstract data type, correctness proof, data type, data structure, specification, software specification 4.34 5.24 CA770605 JB December 29, 1977 1:17 AM 2704 4 2958 2738 4 2958 2866 4 2958 2869 4 2958 2941 4 2958 2958 4 2958 3004 4 2958 3030 4 2958 2356 5 2958 2958 5 2958 2958 5 2958 2958 5 2958 3030 5 2958 3031 5 2958 3049 5 2958 2247 6 2958 2356 6 2958 2457 6 2958 2651 6 2958 2939 6 2958 2956 6 2958 2958 6 2958 2958 6 2958 2958 6 2958 2957 6 2958 2960 6 2958 2972 6 2958