Data abstraction from a programming language viewpoint

This paper traces the development of data abstraction concepts in programming languages. A data abstraction, or abstract data type, describes a collection of abstract entities and operations on the entities. A program which uses a data abstraction can access or modify the entities only through the abstract operations. Specific research topics discussed in the paper include: the role of type in a programming language, the formal specification of the semantics of a data abstraction, data abstraction language construct design issues, type hierarchies, and type-checking.

[1]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[2]  Edmond Schonberg,et al.  Programming by Refinement, as Exemplified by the SETL Representation Sublanguage , 1979, TOPL.

[3]  Peter Wegner,et al.  The Vienna Definition Language , 1972, CSUR.

[4]  Daniel G. Bobrow,et al.  New Programming Languages for Artificial Intelligence Research , 1974, CSUR.

[5]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[6]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[7]  J. D. Ichbiah,et al.  Preliminary Ada reference manual , 1979, SIGP.

[8]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[9]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.

[10]  Barbara Liskov,et al.  A language extension for expressing constraints on data access , 1978, CACM.

[11]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974 .

[12]  Edwin H. Satterthwaite,et al.  Early experience with Mesa , 1977, CACM.

[13]  John V. Guttag,et al.  Notes on Type Abstraction (Version 2) , 1980, IEEE Transactions on Software Engineering.

[14]  Barbara Liskov,et al.  Aspects Of Implementing CLU , 1978, ACM Annual Conference.

[15]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[16]  Ben Wegbreit The ECL programming system , 1972, AFIPS '71 (Fall).

[17]  James R. Low Automatic data structure selection: an example and overview , 1978, CACM.

[18]  C. A. R. Hoare,et al.  Ambiguities and insecurities in pascal , 1977, Softw. Pract. Exp..

[19]  Lawrence A. Rowe,et al.  Automating the Selection of Implementation Structures , 1978, IEEE Transactions on Software Engineering.