Skip to main content

Notes on type abstraction

  • IV. Special Language Considerations And Formal Tools
  • Chapter
  • First Online:
Program Construction

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

Abstract

This paper, which was prepared to accompany a series of lectures given at the 1978 NATO International Summer School on Program Construction, is primarily tutorial in nature. It begins by discussing in a general setting the role of type abstraction and the need for formal specifications of type abstractions. It then proceeds to examine in some detail two approaches to the construction of such specifications: that proposed by Hoare in his 1972 paper "Proofs of Correctness of Data Representations," and the author's own version of algebraic specifications. The Hoare approach is presented via a discussion of its embodiment in the programming language Euclid. The discussion of the algebraic approach includes material abstracted from earlier papers as well as some new material that has yet to appear. This new material deals with parameterized types and the specification of restrictions. The paper concludes with a brief discussion of the relative merits of the two approaches to type abstraction.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Dahl, O.J., Nygaard, K., and Myhrhuag, B., "The SIMULA 67 Common Base Language," Norwegian Computing Centre, Forskningsveien 1B, Oslo (1968).

    Google Scholar 

  2. Dahl, O.J., "Can Program Proving Be Made Practical?" Institute of Informatics, University of Oslo, Norway, (1978).

    Google Scholar 

  3. Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, (1976).

    Google Scholar 

  4. Donahue, J.E., "Complementary Definitions of Programming Language Semantics," Lecture Notes in Computer Science, vol. 42, Springer-Verlag, (1976).

    Google Scholar 

  5. Gannon, J.D., Language Design to Enhance Programming Reliability, Ph. D. Thesis, University of Toronto, Department of Computer Science (1975), available as Computer Systems Research Group Technical Report CSRG-47.

    Google Scholar 

  6. Goguen, J.A., Thatcher, J.W., Wagner, E.G., and Wright, J.B., "Abstract Data-Types as Initial Algebras and Correctness of Data Representations," Proceedings, Conference on Computer Graphics, Pattern Recognition and Data Structure, (May 1975).

    Google Scholar 

  7. Guttag, J.V., The Specification and Application to Programming of Abstract Data Types, Ph.D. Thesis, University of Toronto, Department of Computer Science (1975), available as Computer Systems Research Group Technical Report CSRG-59.

    Google Scholar 

  8. Guttag, J.V., Horowitz, E., and Musser, D.R., "Abstract Data Types and Software Validation," USC Information Sciences Institute Technical Report, (1976).

    Google Scholar 

  9. Guttag, J.V., "Abstract Data Types and the Development of Data Structures," Communications of the CACM, vol. 20, no. 6 (June 1977), pp. 396–404.

    Article  Google Scholar 

  10. Guttag, J.V., and Horning, J.J., "The Algebraic Specification of Abstract Data Types," Acta Informatica, 10, 1, pp. 27–52 (1978).

    Article  MathSciNet  Google Scholar 

  11. Hoare, C.A.R., "An Axiomatic Basis for Computer Programming," CACM, vol. 12, no. 10 (October 1969), pp. 576–580.

    Article  Google Scholar 

  12. Hoare, C.A.R., "Proofs of Correctness of Data Representations," Acta Informatica, vol. 1, no. 1 (1972), pp. 271–281.

    Article  Google Scholar 

  13. Knuth, D.E., and Bendix, P.B., "Simple Word Problems in Universal Algebras," Computational Problems in Abstract Algebras, J. Leech, Ed., Pergamon Press, (1970), pp. 263–297.

    Google Scholar 

  14. Lampson, B.W., Horning, J.J., London, R.L., MItchell, J.G., Popek, G.J., "Revised Report on the Programming Language Euclid," Xerox Research Center, to appear. An earlier version appeared in SIGPLAN Notices 12, 2 (February 1977).

    Google Scholar 

  15. London, R.L., Guttag, J.V., Horning, J.J., Lampson, B.W., Mitchell, J.G., and Popek, G.J., "Proof Rules for the Programming Language Euclid," Acta Informatica, 10, 1, pp. 1–26 (1978).

    Article  Google Scholar 

  16. Morris, J.H., "Types are not Sets," ACM Symposium on the Principles of Programming Languages, (October 1973), pp. 120–124.

    Google Scholar 

  17. Parnas, D.L., "A Technique for the Specification of Software Modules with Examples," CACM, vol. 15, no. 5 (May 1972), pp. 330–336.

    Article  Google Scholar 

  18. Scott, D., "Outline of a Mathematical Theory of Computation," Proceedings of the Fourth Annual Princeton Conference on Information Science and Systems, (1970), pp. 169–176.

    Google Scholar 

  19. Spitzen, J., and Wegbreit, B., "The Verification and Synthesis of Data Structures," Acta Informatica, vol. 4, (1975), pp. 127–144.

    Article  Google Scholar 

  20. Thatcher, J.W, Wagner, E.G., and Wright, J.B., "Data Type Specification: Parameterization and the Power of Specification Techniques," Proceedings SIGACT Tenth Annual Symposium on Theory of Computing, (May 1978).

    Google Scholar 

  21. Wulf, W.A., London, R.L., and Shaw, M., "An Introduction to the the Construction and Verification of Alphard Programs," IEEE Transactions on Software Engineering, SE-2, 4, (December 1976), pp. 253–265.

    Article  Google Scholar 

  22. Zilles, S.N., "Abstract Specifications for Data Types," IBM Research Laboratory, San Jose, California, (1975).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Friedrich L. Bauer Manfred Broy E. W. Dijkstra S. L. Gerhart D. Gries M. Griffiths J. V. Guttag J. J. Horning S. S. Owicki C. Pair H. Partsch P. Pepper M. Wirsing H. Wössner

Rights and permissions

Reprints and permissions

Copyright information

© 1979 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Guttag, J. (1979). Notes on type abstraction. In: Bauer, F.L., et al. Program Construction. Lecture Notes in Computer Science, vol 69. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014684

Download citation

  • DOI: https://doi.org/10.1007/BFb0014684

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-09251-3

  • Online ISBN: 978-3-540-35312-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics