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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Dahl, O.J., Nygaard, K., and Myhrhuag, B., "The SIMULA 67 Common Base Language," Norwegian Computing Centre, Forskningsveien 1B, Oslo (1968).
Dahl, O.J., "Can Program Proving Be Made Practical?" Institute of Informatics, University of Oslo, Norway, (1978).
Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, (1976).
Donahue, J.E., "Complementary Definitions of Programming Language Semantics," Lecture Notes in Computer Science, vol. 42, Springer-Verlag, (1976).
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.
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).
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.
Guttag, J.V., Horowitz, E., and Musser, D.R., "Abstract Data Types and Software Validation," USC Information Sciences Institute Technical Report, (1976).
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.
Guttag, J.V., and Horning, J.J., "The Algebraic Specification of Abstract Data Types," Acta Informatica, 10, 1, pp. 27–52 (1978).
Hoare, C.A.R., "An Axiomatic Basis for Computer Programming," CACM, vol. 12, no. 10 (October 1969), pp. 576–580.
Hoare, C.A.R., "Proofs of Correctness of Data Representations," Acta Informatica, vol. 1, no. 1 (1972), pp. 271–281.
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.
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).
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).
Morris, J.H., "Types are not Sets," ACM Symposium on the Principles of Programming Languages, (October 1973), pp. 120–124.
Parnas, D.L., "A Technique for the Specification of Software Modules with Examples," CACM, vol. 15, no. 5 (May 1972), pp. 330–336.
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.
Spitzen, J., and Wegbreit, B., "The Verification and Synthesis of Data Structures," Acta Informatica, vol. 4, (1975), pp. 127–144.
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).
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.
Zilles, S.N., "Abstract Specifications for Data Types," IBM Research Laboratory, San Jose, California, (1975).
Author information
Authors and Affiliations
Editor information
Rights 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