|
ABSTRACT
A data abstraction can be naturally specified using algebraic axioms. The virtue of these axioms is that they permit a representation-independent formal specification of a data type. An example is given which shows how to employ algebraic axioms at successive levels of implementation. The major thrust of the paper is twofold. First, it is shown how the use of algebraic axiomatizations can simplify the process of proving the correctness of an implementation of an abstract data type. Second, semi-automatic tools are described which can be used both to automate such proofs of correctness and to derive an immediate implementation from the axioms. This implementation allows for limited testing of programs at design time, before a conventional implementation is accomplished.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
DaM, O.-J. The SIMULA 67 common base language. Norwegian Comput. Ctr., Oslo, 1968.
|
| |
3
|
Goguen, J.A., Thatcher, J.W., Wagner, E.G., and Wright, J.B. Abstract data-types as initial algebras and correctness of data representations. Proc. Conf. on Comptr. Graphics, Pattern Recognition and Data Structure, May 1975.
|
| |
4
|
Good, D.I., London, R.L, and Bledsoe, W.W. An interactive program verification system. IEEE Trans. Software Eng. SE-1, 1 (March 1975), 56-67.
|
| |
5
|
Guttag, J.V., Horowitz, E., and Musser, D. The design of data type specifications. In Current Trends in Programming Methodology, R.T. Yah, Ed., Prentice-Hall, Englewood Cliffs, N.J., 1978, pp. 60-79.
|
 |
6
|
|
 |
7
|
|
| |
8
|
Guttag, J.V., and Homing, J.J. The algebraic specification of abstract data types. Acta lnformatica 10, 1 (1978), 27-52.
|
| |
9
|
Hoare, C.A.R. Proof of correctness of data representations. Acta Informatica 4 (1972), 271-281.
|
| |
10
|
Hoare, C.A.R., and Wirth, N. An axiomatic definition of the programming language PASCAL. Acta Informatica 2 (1973), 335-355.
|
| |
11
|
Hoare, C.A.R. Recursive data structures, lnt. J. Comptr. and Inform. Sci. 4, 2 (June 1975), 105-132.
|
| |
12
|
Horowitz, E., and Salmi, S. Fundamentals of Data Structures. Computer Science Press, June 1976.
|
 |
13
|
|
 |
14
|
|
| |
15
|
|
| |
16
|
McCarthy, J. Basis for a mathematical theory of computation. In Computer Programming and Formal Systems, P. Braffort and D. Hirchberg, Eds., North-Holland Publ. Co., Amsterdam, 1963, pp. 33-70.
|
| |
17
|
Musser, D.R. A data type verification system based on rewrite rules. Proc. of Sixth Texas Conf. of Comput. Syst., Austin, Tex., Nov. 1977.
|
| |
18
|
Palme, J. Protected program modules in SIMULA 67. FOAP Rep. No. C8372-M3(E5), Research Inst. of National Defense, Stockholm, 1973.
|
| |
19
|
Parnas, D. L. Information distribution aspects of design methodology. Information Processing 71, 1 (1972), North-Holland Pub. Co., Amsterdam, 339-344.
|
| |
20
|
Spitzen, J., and Wegbreit, B. The verification and synthesis of data structures. Acta Informatica 4 (1975), 127-144.
|
| |
21
|
Standish, T.A. Data structures: an axiomatic approach. BBN Rep. No. 2639, Bolt Beranek and Newmann, Cambridge, Mass., 1973.
|
| |
22
|
|
 |
23
|
|
| |
24
|
Wulf, W.A., London, R.L., and Shaw, M. An introduction to the construction and verification of Alphard programs. IEEE Trans. Software Eng. SE-2, 4 (December 1976), 253-265.
|
| |
25
|
Zilles, S. N. Abstract specifications for data types. IBM Res. Lab., San Jose, Calif., 1975.
|
CITED BY 80
|
|
|
|
|
William Weihl , Barbara Liskov, Specification and implementation of resilient, atomic data types, Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems, p.53-64, June 27-29, 1983, San Francisco, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John Gannon , Paul McMullin , Richard Hamlet, Data Abstraction, Implementation, Specification, and Testing, ACM Transactions on Programming Languages and Systems (TOPLAS), v.3 n.3, p.211-223, July 1981
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rudolf K. Keller , Mary Cameron , Richard N. Taylor , Dennis B. Troup, User interface development and software environments: the Chiron-1 system, Proceedings of the 13th international conference on Software engineering, p.208-218, May 13-17, 1991, Austin, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John Guttag , James Horning , John Williams, FP with data abstraction and strong typing, Proceedings of the 1981 conference on Functional programming languages and computer architecture, p.11-24, October 18-22, 1981, Portsmouth, New Hampshire, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Viktor Vafeiadis , Maurice Herlihy , Tony Hoare , Marc Shapiro, Proving correctness of highly-concurrent linearisable objects, Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, March 29-31, 2006, New York, New York, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D. Craigen , S. Kromodimoeljo , I. Meisels , A. Neilson , B. Pase , M. Saaltink, m-EVES: A tool for verifying software, Proceedings of the 10th international conference on Software engineering, p.324-333, April 11-15, 1988, Singapore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|