Abstract
The concept of a data type with total operations and exceptions is proposed as a basic structuring tool for the design of verifiable robust software. A notation for the specification of such data types is presented and the issues underlying their implementation in a programming language supporting data abstraction and exception handling are discussed and illustrated by examples. Existing proof methods are extended to permit verification of the total correctness of programs which implement or make use of data types with total operations and exceptions.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
J.R. Abrial, "The Specification Language Z — Syntax and Semantics", Programming Research Group, Oxford University (1980).
E. Best and F. Cristian, "Systematic Detection of Exception Occurrences", Science of Computer Programming Vol. 1(1), North Holland Pub. Co. (1981).
D. Bjorner, "Formalisation of Data Base Models", pp. 144–215 in Abstract Software Specification, ed. D. Bjorner, Springer Verlag Lecture Notes in Comp. Sc. (1979).
F. Cristian, "Le Traitement des Exceptions dans les Programmes Modulaires", Doctoral Thesis, Univ. of Grenoble (1979).
F. Cristian, "Exception Handling and Software-Fault Tolerance", Proc. of the 10th Int. Symp. on Fault Tolerant Computing, Kyoto, pp.97–103 (1980).
E.W. Dijkstra, A Discipline of Programming, Prentice-Hall (1976).
S.L. Gerhart et al., "An Overview of AFFIRM — a Specification and Verification System", Proc. of the IFIP80 Congress, Tokyo (1980).
J.A. Goguen, "Abstract Errors for Abstract Data Types", pp. 492–525 in Formal Description of Programming Concepts, ed. E.J. Neuhold, North-Holland (1978).
J.A. Goguen, J.W. Thatcher, and E.G. Wagner, "An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types", pp. 80–149 in Current Trends in Progr. Methodology, ed. R.T. Yeh, Prentice-Hall (1978).
J. Guttag and J.J. Horning, "Formal Specification As a Design Tool", Proc. of the 7th ACM Symp. on Principles of Progr. Languages, Las Vegas (1980).
C.A.R. Hoare, "Proof of Correctness of Data Representations", Acta Informatica Vol. 1(4), pp.271–281 (1972).
J.J. Horning, H.C. Lauer, P.M. Melliar-Smith, and B. Randell, "A Program Structure for Error Detection and Recovery", in Lecture Notes in Comp. Sc., Springer Verlag (1974).
J. Ichbiah et al., "Rationale for the Design of the ADA Programming Language", SIGPLAN Notices Vol. 14(6) (1979).
C.B. Jones, Software Development: A Rigorous Aproach, Prentice-Hall (1980).
B.H. Liskov and A. Snyder, "Exception Handling in CLU", IEEE Trans. on Softw. Eng. Vol. SE-5(6), pp.546–558 (1979).
D.C. Luckham and W. Polak, "ADA Exception Handling: An Axiomatic Approach", ACM Trans. on Progr. Lang. and Systems Vol. 2(2), pp.225–233 (1980).
R. Nakajima, M. Honda, and H. Nakahara, "Hierarchical Program Specification and Verification — A Many-Sorted Approach", Acta Informatica Vol. 14, pp.135–155 (1980).
R. Randell, P.A. Lee, and P.C. Treleaven, "Reliability Issues in Computing Systems Design", Computing Surveys Vol. 10(2), pp.123–165 (1978).
J.E. Stoy, Denotational Semantics: the Scott-Strachey Approach to Programming Language Theory, MIT Press, Cambridge (1977).
W.A. Wulf, R.L. London, and M. Shaw, "Abstraction and Verification in ALPHARD: Introduction to language and Methodology", Comp. Sc. Dept, Carnegie-Mellon Univ. (1976).
S.N. Zilles, "An Introduction to Data Algebras", pp. 248–272 in Abstract Software Specifications, ed. D. Bjorner, Springer Verlag, Lect. Notes in Comp. Sc. (1979).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1982 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cristian, F. (1982). Robust data types. In: Staunstrup, J. (eds) Program Specification. ProgSpec 1981. Lecture Notes in Computer Science, vol 134. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-11490-4_16
Download citation
DOI: https://doi.org/10.1007/3-540-11490-4_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-11490-1
Online ISBN: 978-3-540-39176-0
eBook Packages: Springer Book Archive