Skip to main content
Log in

Proof theory for exception handling in a tasking environment

  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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

    Google Scholar 

  • [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)]

    Article  MATH  Google Scholar 

  • [Apt83] Apt, K.R.: Formal justification of a proof system for communicating sequential processes. JACM30 (1), 197–216 (1983)

    Article  MATH  MathSciNet  Google Scholar 

  • [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

    Google Scholar 

  • [AA78] Arbib, M.A., Alagic, S.: Proof rules for gotos. Acta Informatica11, 139–148 (1978)

    Article  Google Scholar 

  • [CH72] Clint, M., Hoare, C.A.R.: Program proving: jumps and functions. Acta Informatica1, 214–224 (1972)

    Article  Google Scholar 

  • [Cri84] Cristian, F.: Correct and robust programs. IEEE Trans. Softw. Eng.SE-10 (2), 163–174 (1984)

    Article  MathSciNet  Google Scholar 

  • [DBr81] DeBruin, A.: Goto statements: semantics and deduction systems. Acta Informatica15, 385–424 (1981)

    Article  Google Scholar 

  • [Fli84] Flint, R.S.: An approach to modeling database activity, Ph.D. Thesis. Tech. Rep. 239. University of California, Irvine (1984)

    Google Scholar 

  • [Geh84] Gehani, N.: Ada: an advanced introduction. Englewood Cliffs: Prentice-Hall 1984

    Google Scholar 

  • [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

    Google Scholar 

  • [GD84] Gerth, R., DeRoever, W.P.: A proof system for concurrent Ada programs. Sci. Comput. Program.4 (2), 159–204 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  • [GD86] Gerth, R., DeRoever, W.P.: Proving monitors revisited: a first step towards verifying object-oriented systems. Fund. Inform.9, 371–400 (1986)

    MATH  MathSciNet  Google Scholar 

  • [Hoa78] Hoare, C.A.R.: Communicating sequential processes. Commun. ACM21 (8), 666–677 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  • [Ich79] Ichbiah, J. et al.: Rationale for the design of the programming language Ada. ACM Sigplan Notices14, 6 (1979)

    Google Scholar 

  • [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)

    Article  MATH  Google Scholar 

  • [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)]

    Article  MathSciNet  Google Scholar 

  • [OG76] Owicki, S.S., Gries, D.: An axiomatic technique for parallel programs I. Acta Informatica6 319–340 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  • [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

    Google Scholar 

  • [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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02983373

Keywords

Navigation