Summary
In this paper, we develop a syntax-directed proof system for a fragment of Ada consisting of the essential features of tasking and exception handling. The proof system is based on a correctness formula for therobust specification of single-entry-multiple-exit structures that provides a unified framework for exception handling mechanisms in the presence of nondeterminism, concurrency and communication. The proof system uses the technique ofco-operating proofs, which was developed for proving the correctness of communicating sequential processes [AFD80] and extended to a concurrent fragment of Ada in [GD84]. We build upon the latter. The soundness and completeness are established formally in [Lod87]. The proof rules are structured so that exceptions can be used as a structured escape mechanism in accordance with the design objectives of Ada. Examples are given to show how the rules highlight the annotation required for establishing the robustness of Ada programs.
Similar content being viewed by others
References
[Ada83] American National Standards Institute: The programming language Ada Reference Manual, ANSI/MIL-STD-1815A. (Lect. Notes Comput. Sci. vol. 155) Berlin Heidelberg New York: Springer 1983
[AFD80] Apt, K.R., Francez, N., DeRoever, W.P.: A proof system for communicating sequential processes. ACM Trans. Prog. Lang. Syst.2 (3), 359–385 (1980) [Also Moitra, A.: Letter,5 (3), 500–501 (1983)]
[Apt83] Apt, K.R.: Formal justification of a proof system for communicating sequential processes. JACM30 (1), 197–216 (1983)
[Apt85] Apt, K.R.: Proving correctness of CSP programs — a tutorial. In: Broy, M. (ed.) Control flow and data flow: concepts of distributed programming. NATO ASI Series F, 14, pp. 441–474. Berlin Heidelberg New York: Springer 1985
[AA78] Arbib, M.A., Alagic, S.: Proof rules for gotos. Acta Informatica11, 139–148 (1978)
[CH72] Clint, M., Hoare, C.A.R.: Program proving: jumps and functions. Acta Informatica1, 214–224 (1972)
[Cri84] Cristian, F.: Correct and robust programs. IEEE Trans. Softw. Eng.SE-10 (2), 163–174 (1984)
[DBr81] DeBruin, A.: Goto statements: semantics and deduction systems. Acta Informatica15, 385–424 (1981)
[Fli84] Flint, R.S.: An approach to modeling database activity, Ph.D. Thesis. Tech. Rep. 239. University of California, Irvine (1984)
[Geh84] Gehani, N.: Ada: an advanced introduction. Englewood Cliffs: Prentice-Hall 1984
[Ger82] Gerth, R.: A sound and complete Hoare axiomatization of the Ada rendezvous. Proc. 9th ICALP, Aarhus, LNCS 140, pp. 252–265. Berlin Heidelberg New York: Springer 1982
[GD84] Gerth, R., DeRoever, W.P.: A proof system for concurrent Ada programs. Sci. Comput. Program.4 (2), 159–204 (1984)
[GD86] Gerth, R., DeRoever, W.P.: Proving monitors revisited: a first step towards verifying object-oriented systems. Fund. Inform.9, 371–400 (1986)
[Hoa78] Hoare, C.A.R.: Communicating sequential processes. Commun. ACM21 (8), 666–677 (1978)
[Ich79] Ichbiah, J. et al.: Rationale for the design of the programming language Ada. ACM Sigplan Notices14, 6 (1979)
[Li82] Li, W.: An operational semantics for tasking and exception handling in Ada. Proc. Ada TEC82, Washington, 1982, pp. 138–151
[Lod87] Lodaya, K.: Proof theory for exception handling in distributed programs. Ph.D. Thesis, Tech. Rep. CS-87/30. TIFR, 1987
[LP80] Luckham, D.C., Polak, W.: Ada exception handling: an axiomatic approach. ACM Trans. Prog. Lang. Syst.2 (2), 225–233 (1980)
[MC81] Misra, J., Chandy, K.M.: Proofs of networks of processes. IEEE Trans. Softw. Eng.SE-7 (4), 417–426 (1981) [Also Ossefort, M.: CorrigendumSE-8 (2), 160 (1982)]
[OG76] Owicki, S.S., Gries, D.: An axiomatic technique for parallel programs I. Acta Informatica6 319–340 (1976)
[Pan88] Pandya, P.K.: Compositional Verification of Distributed Programs. Ph.D. Thesis, University of Bombay, TR-CS-88/3. Tata Institute of Fundamental Research, Bombay, 1988
[Plo81] Plotkin, G.D.: A structural approach to operational semantics. DAIMI FN-19. Arhus University 1981
[Plo83] Plotkin, G.D.: An operational semantics for CSP. Proc. IFIP Conf. Formal Description of Programming Concepts II, Garmisch-Partenkirchen, 1983, pp. 199–225
[ZDB85] Zwiers, J., DeRoever, W.P., Van Emde Boas, P.: Compositionality and concurrent networks: soundness and completeness of a proof system. Proc. 12th ICALP, Nafplion. (Lect. Notes Comput. Sci, vol. 194) pp. 509–519. Berlin Heidelberg New York: Springer 1885
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Lodaya, K., Shyamasundar, R.K. Proof theory for exception handling in a tasking environment. Acta Informatica 28, 7–41 (1990). https://doi.org/10.1007/BF02983373
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02983373