Skip to main content

Abstract data types: A retrospective and prospective view

  • Invited Lectures
  • Conference paper
  • First Online:
Mathematical Foundations of Computer Science 1980 (MFCS 1980)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 88))

  • 150 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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).

    Google Scholar 

  2. Per Brinch Hansen. “The Programming Language Concurrent Pascal.” IEEE Transactions on Software Engineering SE-1 (June 1975).

    Google Scholar 

  3. 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

    Google Scholar 

  4. R. H. Campbell and A. N. Habermann. The Specification of Process Synchronization by Path Expressions. Lecture Notes in Computer Science 16, 1974.

    Google Scholar 

  5. O.-J. Dahl. Simula 67 Common Base Language. Norwegian Computing Center, Oslo, 1968.

    Google Scholar 

  6. Edsger W. Dijkstra. “Goto Statement Considered Harmful.” Communications of the ACM 11, 3 (March 1968).

    Google Scholar 

  7. Edsger W. Dijkstra. “The Structure of the ‘THE’ Multiprogramming System.” Communications of the ACM 11, 3 (May 1968).

    Google Scholar 

  8. R. W. Floyd. Assigning Meanings to Programs. Proceedings of the Symposium in Applied Mathematics, American Mathematical Society, 1967, pp. 19–32.

    Google Scholar 

  9. Charles M. Geschke, James H. Morris Jr., and Edwin H. Satterthwaite. “Early Experience with Mesa.” Communications of the ACM 20, 8 (August 1977).

    Google Scholar 

  10. John V. Guttag, Ellis Horowitz and David R. Musser. “Abstract Data Types and Software Validation.” Communications of the ACM 21, 12 (December 1978).

    Google Scholar 

  11. C. A. R. Hoare. “Proof of Correctness of Data Representations.” Acta Informatica 1, 4 (1972).

    Google Scholar 

  12. C. A. R. Hoare and N. Wirth. “An Axiomatic Definition of the Programming Language Pascal.” Acta Informatica 2, 4 (1973).

    Google Scholar 

  13. J. D. Ichbiah, et al. “Preliminary ADA Reference Manual.” ACM SIGPLAN Notices 14, 6A (June 1979).

    Google Scholar 

  14. Kathleen Jensen and Niklaus Wirth. Pascal User Manual and Report. Springer-Verlag, 1974.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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).

    Google Scholar 

  17. Barbara H. Liskov and Stephen N. Zilles. “Specification Techniques for Data Abstractions.” IEEE Transactions on Software Engineering SE-1 (March 1975).

    Google Scholar 

  18. Barbara Liskov, Alan Snyder, Russell Atkinson and Craig Schaffert. “Abstraction Mechanisms in CLU.” Communications of the ACM 20, 8 (August 1977).

    Google Scholar 

  19. 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.

    Google Scholar 

  20. R. L. London. A View of Program Verification. Proceedings of the International Conference on Reliable Software, April, 1975, pp. 534–545.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. J. H. Morris. Types Are Not Sets. Proceedings of the ACM Symposium on Principles of Programming Languages, ACM, 1973, pp. 120–124

    Google Scholar 

  23. J. H. Morris. “Protection in Programming Languages.” Communications of the ACM 16 (January 1973).

    Google Scholar 

  24. 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

    Google Scholar 

  25. J. Nestor and M. Van Deusen. RED Language Reference Manual. Intermetrics, Inc., 1979.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. David L. Parnas. Information Distribution Aspects of Design Methodology. Proceedings of IFIP Congress, IFIP, 1971, pp. 26–30. Booklet TA-3.

    Google Scholar 

  28. David L. Parnas. “On the Criteria to be Used in Decomposing Systems into Modules.” Communications of the ACM 15, 12 (December 1972).

    Google Scholar 

  29. David L. Parnas. “A Technique for Software Module Specification with Examples.” Communications of the ACM 15 (May 1972).

    Google Scholar 

  30. 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.

    Google Scholar 

  31. David L. Parnas. Some Hypotheses about the “Uses” Hierarchy for Operating Systems. Technische Hochschule Darmstadteich Informatik, 1976.

    Google Scholar 

  32. David Parnas. On a Buzzword, Hierarchical Structure. Proceedings of the IFIP Congress, August, 1974.

    Google Scholar 

  33. O. Roubine and L. Robinson. Special (SPECIfications and Assertion Language): Reference Manual. SRI International Memo, 1976.

    Google Scholar 

  34. S. A. Schuman, Ed. “Proceedings of the International Symposium on Extensible Languages.” ACM SIGPLAN Notices 6 (December 1971).

    Google Scholar 

  35. 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).

    Google Scholar 

  36. Mary Shaw. A Formal System for Specifying and Verifying Program Performance. Tech. Rept. CMU-CS-79-129, Carnegie-Mellon University, June, 1979.

    Google Scholar 

  37. Mary Shaw and Wm. A. Wulf. “Toward Relaxing Assumptions in Languages and Their Implementations.” SIGPLAN Notices 13, 3 (March 1980), 45–61.

    Google Scholar 

  38. J. Spitzen and B. Wegbreit. “The verification and synthesis of data structures.” Acta Informatica 4 (1975).

    Google Scholar 

  39. 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).

    Google Scholar 

  40. Ben Wegbreit. “Verifying Program Performance.” Journal of the ACM 23, 4 (October 1976).

    Google Scholar 

  41. 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.

    Google Scholar 

  42. B. L. Whorf. A linguistic consideration of thinking in primitive communities. In Language, Thought, and Reality, MIT Press, Cambridge, Massachusetts, 1956.

    Google Scholar 

  43. Niklaus Wirth. “Program Development by Stepwise Refinement.” Communications of the ACM 14, 4 (April 1971).

    Google Scholar 

  44. Niklaus Wirth. “Modula: A Language for Modular Programming.” Software — Practice and Experience 7, 1 (January 1977).

    Google Scholar 

  45. 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).

    Google Scholar 

  46. 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).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

P. Dembiński

Rights and permissions

Reprints 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

Publish with us

Policies and ethics