Abstract
This paper presents a retrospective view of the last decade's research in a number of related areas: programming methodology, formal semantics, program specification and verification, and programming languages. The synergistic effect of these threads of research is especially evident in the area called abstract data types, and this area is taken as the focus of the paper. After reviewing some of the history and status of the area, some important open problems are identified.
This research was sponsored by the National Science Foundation under Grant MCS77-03883 and by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 3597, monitored by the Air Force Avionics Laboratory Under Contract F33615-78-C-1551. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the National Science Foundation, the Defense Advanced Research Projects Agency, or the US Government.
Preview
Unable to display preview. Download preview PDF.
References
Allen L. Ambler, Donald I. Good, James C. Browne, Wilhelm F. Burger, Richard M. Cohen, Charles G. Hoch, Robert E. Wells. “Gypsy: A Language for Specification and Implementation of Verifiable Programs.” ACM SIGPLAN Notices 12, 3 (March 1977).
Per Brinch Hansen. “The Programming Language Concurrent Pascal.” IEEE Transactions on Software Engineering SE-1 (June 1975).
J. N. Buxton and B. Randell (eds). Software Engineering Techniques. NATO, 1970. Report on a Conference Sponsored by the NATO Science Committee, Rome, Italy, 27th to 31st October 1969
R. H. Campbell and A. N. Habermann. The Specification of Process Synchronization by Path Expressions. Lecture Notes in Computer Science 16, 1974.
O.-J. Dahl. Simula 67 Common Base Language. Norwegian Computing Center, Oslo, 1968.
Edsger W. Dijkstra. “Goto Statement Considered Harmful.” Communications of the ACM 11, 3 (March 1968).
Edsger W. Dijkstra. “The Structure of the ‘THE’ Multiprogramming System.” Communications of the ACM 11, 3 (May 1968).
R. W. Floyd. Assigning Meanings to Programs. Proceedings of the Symposium in Applied Mathematics, American Mathematical Society, 1967, pp. 19–32.
Charles M. Geschke, James H. Morris Jr., and Edwin H. Satterthwaite. “Early Experience with Mesa.” Communications of the ACM 20, 8 (August 1977).
John V. Guttag, Ellis Horowitz and David R. Musser. “Abstract Data Types and Software Validation.” Communications of the ACM 21, 12 (December 1978).
C. A. R. Hoare. “Proof of Correctness of Data Representations.” Acta Informatica 1, 4 (1972).
C. A. R. Hoare and N. Wirth. “An Axiomatic Definition of the Programming Language Pascal.” Acta Informatica 2, 4 (1973).
J. D. Ichbiah, et al. “Preliminary ADA Reference Manual.” ACM SIGPLAN Notices 14, 6A (June 1979).
Kathleen Jensen and Niklaus Wirth. Pascal User Manual and Report. Springer-Verlag, 1974.
A. K. Jones and B. H. Liskov. “A Language Extension for Controlling Access to Shared Data.” IEEE Transactions on Software Engineering SE-2, 4 (December 1976), 277–285.
B. W. Lampson, J. J. Horning, R. L. London, J. G. Mitchell and G. J. Popek. “Report on the Programming Language Euclid.” ACM SIGPLAN Notices 12, 2 (February 1977).
Barbara H. Liskov and Stephen N. Zilles. “Specification Techniques for Data Abstractions.” IEEE Transactions on Software Engineering SE-1 (March 1975).
Barbara Liskov, Alan Snyder, Russell Atkinson and Craig Schaffert. “Abstraction Mechanisms in CLU.” Communications of the ACM 20, 8 (August 1977).
B. Liskov, E. Moss, C. Schaffert, R. Scheifler and A. Snyder. The CLU Reference Manual. Laboratory for Computer Science, Massachusetts Institute of Technology, 1978. Computation Structures Group Memo No. 161.
R. L. London. A View of Program Verification. Proceedings of the International Conference on Reliable Software, April, 1975, pp. 534–545.
R. L. London, J. V. Guttag, J. J. Horning, B. W. Lampson, J. G. Mitchell, and G.J. Popek. “Proof Rules for the Programming Language Euclid.” Acta Informatica 10, 1 (1978), 1–26.
J. H. Morris. Types Are Not Sets. Proceedings of the ACM Symposium on Principles of Programming Languages, ACM, 1973, pp. 120–124
J. H. Morris. “Protection in Programming Languages.” Communications of the ACM 16 (January 1973).
Peter Naur and Brian Randell (eds). Software Engineering. NATO, 1969. Report on a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968
J. Nestor and M. Van Deusen. RED Language Reference Manual. Intermetrics, Inc., 1979.
Peter G. Neumann, Robert S. Boyer, Richard J. Feiertag, Karl N. Levitt and Lawrence Robinson. A Provably Secure Operating System: The System, its Applications, and Proofs. Tech. Rept. 4332 Final Report, SRI International Project, February, 1977.
David L. Parnas. Information Distribution Aspects of Design Methodology. Proceedings of IFIP Congress, IFIP, 1971, pp. 26–30. Booklet TA-3.
David L. Parnas. “On the Criteria to be Used in Decomposing Systems into Modules.” Communications of the ACM 15, 12 (December 1972).
David L. Parnas. “A Technique for Software Module Specification with Examples.” Communications of the ACM 15 (May 1972).
D. L. Parnas, J. E. Shore and Elliott. On the Need for Fewer Restrictions in Changing Compile-time Environments. NRL Report 7847, Naval Research Lab, November, 1974.
David L. Parnas. Some Hypotheses about the “Uses” Hierarchy for Operating Systems. Technische Hochschule Darmstadteich Informatik, 1976.
David Parnas. On a Buzzword, Hierarchical Structure. Proceedings of the IFIP Congress, August, 1974.
O. Roubine and L. Robinson. Special (SPECIfications and Assertion Language): Reference Manual. SRI International Memo, 1976.
S. A. Schuman, Ed. “Proceedings of the International Symposium on Extensible Languages.” ACM SIGPLAN Notices 6 (December 1971).
Mary Shaw, Wm. A. Wulf and Ralph L. London. “Abstraction and Verification in Alphard: Defining and Specifying Iteration and Generators.” Communications of the ACM 20, 8 (August 1977).
Mary Shaw. A Formal System for Specifying and Verifying Program Performance. Tech. Rept. CMU-CS-79-129, Carnegie-Mellon University, June, 1979.
Mary Shaw and Wm. A. Wulf. “Toward Relaxing Assumptions in Languages and Their Implementations.” SIGPLAN Notices 13, 3 (March 1980), 45–61.
J. Spitzen and B. Wegbreit. “The verification and synthesis of data structures.” Acta Informatica 4 (1975).
Bruce J. Walker, Richard A. Kemmerer, and Gerald J. Popek. “Specification and Verification of the UCLA Security Kernel.” Communications of the ACM 23, 2 (February 1980).
Ben Wegbreit. “Verifying Program Performance.” Journal of the ACM 23, 4 (October 1976).
John H. Wensley, Leslie Lamport, Milton W. Green, Karl N. Levitt, P. M. Melliar-Smith, Robert E. Shostak, and Charles B. Weinstock. “SIFT: Design and Analysis of a Fault-tolerant Computer for Aircraft Control.” Proceedings of the IEEE 66, 10 (October 1978), 1240–1255.
B. L. Whorf. A linguistic consideration of thinking in primitive communities. In Language, Thought, and Reality, MIT Press, Cambridge, Massachusetts, 1956.
Niklaus Wirth. “Program Development by Stepwise Refinement.” Communications of the ACM 14, 4 (April 1971).
Niklaus Wirth. “Modula: A Language for Modular Programming.” Software — Practice and Experience 7, 1 (January 1977).
W. Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson and F. Rollack. “Hydra: The Kernel of a Multiprocessor Operating System.” Communications of the ACM 17 (June 1974).
Wm. A. Wulf, Ralph L. London and Mary Shaw. “An Introduction to the Construction and Verification of Alphard Programs.” IEEE Transactions on Software Engineering SE-2, 4 (December 1976).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1980 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wulf, W.A. (1980). Abstract data types: A retrospective and prospective view. In: Dembiński, P. (eds) Mathematical Foundations of Computer Science 1980. MFCS 1980. Lecture Notes in Computer Science, vol 88. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0022497
Download citation
DOI: https://doi.org/10.1007/BFb0022497
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-10027-0
Online ISBN: 978-3-540-38194-5
eBook Packages: Springer Book Archive