Skip to main content

Abstract Data Types and the Development of Data Structures

Data: Abstraction Definition, and Structure

  • Chapter
Pioneers and Their Contributions to Software Engineering

Abstract

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.

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. Batey, M., Ed. Working Draft of ECMA/ANSI PL/I Standard Tenth Rev., ANSI, New York, (Sept. 1973).

    Google Scholar 

  2. Birkhoff, G., and Lipson, J.D. Heterogeneous algebras. /. Combinatorial Theory 8 (1970), 115–133.

    Article  MathSciNet  MATH  Google Scholar 

  3. Dahl, O.-J., Nygaard, K., and Myhrhaug, B. The SIMULA 67 Common Base Language. Norwegian Comptng. Centre, Oslo, 1968.

    Google Scholar 

  4. Dijkstra, E.W. Notes on structured programming. In Structured Programming, Academic Press, New York, 1972.

    Google Scholar 

  5. Floyd, R.W. Assigning Meaning to Programs. Proc. Symp. in Applied Math., Vol. XIX, AMS, Providence, R.I., 1967, pp. 19–32.

    Google Scholar 

  6. Gannon, J. D. Language design to enhance programming reliability. Ph.D. Th., Comptr. Syst. Res. Group Tech. Rep. CSRG-47, Dept. Comptr. Sei., U. of Toronto, Ontario, 1975.

    Google Scholar 

  7. Good, D. I., London, R. L., and Bledsoe, W.W. An interactive program verification system. IEEE Trans, on Software Engineering SE-1, 1 (March 1975), 59–67.

    Google Scholar 

  8. Guttag, J.V. The specification and application to programming of abstract data types. Ph.D. Th., Comptr. Syst. Res. Group Tech. Rep. CSRG-59, Dept. Comptr. Sci. 1975, U. of Toronto, Ontario, 1975.

    Google Scholar 

  9. Guttag, J.V. and Horning, J. J., The algebraic specifications of abstract data types. Acta Informatica (to appear).

    Google Scholar 

  10. Guttag, J.V., Horowitz, E., and Musser, D. R. Abstract data types and software validation. Tech. Rep., Inform. Sci. Inst., U. of Southern California, Los Angeles, 1976.

    Google Scholar 

  11. Guttag, J. V., Horowitz, E., and Musser, D. R. The design of data type specifications. Proc. Second Int. Conf. on Software Eng., San Francisco, Oct. 1976, pp. 414-420.

    Google Scholar 

  12. Hoare, C.A.R., Proof of correctness of data representations. Acta Informatica 1 (1972), 271–281.

    Article  MATH  Google Scholar 

  13. Hoare, C.A.R., and Wirth, N. An axiomatic definition of the programming language PASCAL. Acta Informatica 2 (1973), 335–355.

    Article  Google Scholar 

  14. Liskov, B. H., and Zilles, S. N. Programming with abstract data types. Proc. ACM SIGPLAN Symp. on Very High Level Languages, SIGPLAN Notices (ACM) 9, 4 (April 1974), 50–59.

    Article  Google Scholar 

  15. McKeeman, W. M., Symbol Table Access. In Compiler Construction, An Advanced Course, T.L. Bauer, and J. Eichel, Eds., Springer-Verlag, New York, 1974.

    Google Scholar 

  16. Morris, J. H. Types are not sets. Conf. Rec. ACM Symp. on the Principles of Programming Languages, Boston, Mass., Oct. 1973, pp. 120-124.

    Google Scholar 

  17. Musser, D. Private communication, 1975.

    Google Scholar 

  18. Palme, J. Protected program modules in SIMULA 67. FOAP Rep. C8372-M3(E5), Res. Inst, of National Defense, Stockholm, 1973.

    Google Scholar 

  19. Parnas, D.L. A technique for the specification of software modules with examples. Comm. ACM 15, 5 (May 1973), 330–336.

    Article  Google Scholar 

  20. Parnas, D. L. Information distribution aspects of design methodology. Information Processing 71, North Holland Pub. Co., Amsterdam, 1971, pp. 339–344.

    Google Scholar 

  21. Spitzen, J., and Wegbreit, B. The verification and synthesis of data structures. Acta Informatica 4 (1975), 127–144.

    Article  MATH  Google Scholar 

  22. Standish, T. A. Data structures: An axiomatic approach. BBN Rep. No. 2639, Bolt, Beranek and Newman, Cambridge, Mass., (1973).

    Google Scholar 

  23. Wegbreit, B., and Spitzen, J. Proving properties of complex data structures. J. ACM 23, 2 (April 1976), 389–396.

    Article  MathSciNet  MATH  Google Scholar 

  24. Wulf, W. A., London, R. L., and Shaw, M. Abstraction and verification in Alphard: Introduction to language and methodology. USC Inform. Sci. Tech. Rep., U. of Southern California, Los Angeles, 1976.

    Google Scholar 

  25. Zilles, S. N. Abstract specifications for data types. IBM Res. Lab., San Jose, Calif., 1975.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1977 Association for Computing Machinery, Inc.

About this chapter

Cite this chapter

Wegbreit, B., Guttag, J. (1977). Abstract Data Types and the Development of Data Structures. In: Broy, M., Denert, E. (eds) Pioneers and Their Contributions to Software Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-48354-7_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-48354-7_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42290-7

  • Online ISBN: 978-3-642-48354-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics