Summary
Data types with total operations and exceptions are proposed as basic building blocks for the construction of modular robust software. A notation for specifying such data types is presented and the issues underlying their correct implementation in a programming language supporting data abstraction and exception handling are discussed and illustrated by examples. New light is shed on some important aspects of exception handling such as the identification and specification of exceptions, the precise detection of exception occurrences, recovery of consistent states after exception detections and verification of the correct implementation of specified exceptional effects for operations.
Similar content being viewed by others
References
Abrial, J.R.: The Specification Language Z — Syntax and Semantics. Programming Research Group, Oxford University, 1980
Best, E., Cristian, F.: Systematic Detection of Exception Occurrences. Sci. Comput. Progr. 1 (1), 115–144, North Holland Pub. Comp. (1981)
Björner, D.: Formalisation of Data Base Models. In: Abstract Software Specification. D. Björner (ed.), Lecture Notes in Comp. Sci., pp. 144–215 (1979) Springer Berlin-Heidelberg-New York
Broy, M, Wirsing, M.: Initial versus Terminal Algebra Semantics for Partially Defined Abstract Types. TUM-I8018, Technical University Munich, 1980
Cristian, F.: Le Traitement des Exceptions dans les Programmes Modulaires. Doctoral Thesis, University of Grenoble, 1979
Cristian, F.: Robust Data Types. Technical Report 170, Computing Laboratory, University of Newcastle upon Tyne, 1981
Cristian, F.: Exception Handling and Software Fault Tolerance. IEEE Transact. Comput. C-31 (6), 531–540(1982)
Dijkstra, E.W.: A Discipline of Programming. New York: Prentice Hall, 1976
Gerhart, S.L., et al.: An Overview of AFFIRM —a Specification and Verification System, Proc. IFIP80 Congress, Tokyo, 1980
Goguen, J.A.: Abstract Errors for Abstract Data Types. In: Formal Description of Programming Concepts. Neuhold, E.J. (ed.) North Holland, pp. 492–525 (1978)
Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types. In: Current Trends Progr. Methodology. Yeh, R.T. (ed.) New York: Prentice-Hall, pp. 80–149 (1978)
Guttag, J., Horning, J.J.: Formal Specification as a Design Tool. Proc. 7th ACM Symp. Principles Progr. Lang., Las Vegas, 1980
Hoare, C.A.R.: Proof of Correctness of Data Representations. Acta Informat. 1(4), 271–281 (1972)
Horning, J.J., Lauer, H.C., Melliar-Smith, P.M., Randell, B.: A Program Structure for Error Detection and Recovery. Proc. Conf. Operat. Syst. Theor. Pract. Aspects, IRIA, (reprinted in Lecture Notes in Comput. Sci. Vol. 16, Springer) (1974)
Ichbiah, J., et al.: Rationale for the Design of the ADA Programming Language. SIGPLAN Notices 14 (6), (1979)
Jones, C.B.: Software Development: A Rigorous Approach. New York: Prentice-Hall, 1980
Liskov, B.H., Snyder, A.: Exception Handling in CLU. IEEE Trans. Softw. Eng. SE-5(6), 546–558 (1979)
Luckham, D.C., Polak, W.: ADA Exception Handling: An Axiomatic Approach. ACM Trans. Progr. Lang. Syst. 2(2), 225–233 (1980)
Randell, B., Lee, P.A., Treleaven, P.C.: Reliability Issues in Computing System Design. Comput. Surveys 10(2), 123–165 (1978)
Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. Cambridge: MIT Press, 1977
Wulf, W.A., London, R.L., Shaw, M.: An Introduction to the Construction and Verification of Alphard programs. IEEE Trans. Softw. Eng. SE-2 (4), 253–265 (1976)
Zilles, S.N.: An Introduction to Data Algebras. In: Abstract Software Specifications. Björner, D. (ed.). Lecture Notes in Comput. Sci., pp. 248–272 (1979), Springer Berlin, Heidelberg, New York
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Cristian, F. Robust data types. Acta Informatica 17, 365–397 (1982). https://doi.org/10.1007/BF00264158
Issue Date:
DOI: https://doi.org/10.1007/BF00264158