Acta Informatica

, Volume 28, Issue 1, pp 7–41 | Cite as

Proof theory for exception handling in a tasking environment

  • K. Lodaya
  • R. K. Shyamasundar
Article

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [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 1983Google Scholar
  2. [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)]MATHCrossRefGoogle Scholar
  3. [Apt83] Apt, K.R.: Formal justification of a proof system for communicating sequential processes. JACM30 (1), 197–216 (1983)MATHCrossRefMathSciNetGoogle Scholar
  4. [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 1985Google Scholar
  5. [AA78] Arbib, M.A., Alagic, S.: Proof rules for gotos. Acta Informatica11, 139–148 (1978)CrossRefGoogle Scholar
  6. [CH72] Clint, M., Hoare, C.A.R.: Program proving: jumps and functions. Acta Informatica1, 214–224 (1972)CrossRefGoogle Scholar
  7. [Cri84] Cristian, F.: Correct and robust programs. IEEE Trans. Softw. Eng.SE-10 (2), 163–174 (1984)MathSciNetCrossRefGoogle Scholar
  8. [DBr81] DeBruin, A.: Goto statements: semantics and deduction systems. Acta Informatica15, 385–424 (1981)CrossRefGoogle Scholar
  9. [Fli84] Flint, R.S.: An approach to modeling database activity, Ph.D. Thesis. Tech. Rep. 239. University of California, Irvine (1984)Google Scholar
  10. [Geh84] Gehani, N.: Ada: an advanced introduction. Englewood Cliffs: Prentice-Hall 1984Google Scholar
  11. [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 1982Google Scholar
  12. [GD84] Gerth, R., DeRoever, W.P.: A proof system for concurrent Ada programs. Sci. Comput. Program.4 (2), 159–204 (1984)MATHCrossRefMathSciNetGoogle Scholar
  13. [GD86] Gerth, R., DeRoever, W.P.: Proving monitors revisited: a first step towards verifying object-oriented systems. Fund. Inform.9, 371–400 (1986)MATHMathSciNetGoogle Scholar
  14. [Hoa78] Hoare, C.A.R.: Communicating sequential processes. Commun. ACM21 (8), 666–677 (1978)MATHCrossRefMathSciNetGoogle Scholar
  15. [Ich79] Ichbiah, J. et al.: Rationale for the design of the programming language Ada. ACM Sigplan Notices14, 6 (1979)Google Scholar
  16. [Li82] Li, W.: An operational semantics for tasking and exception handling in Ada. Proc. Ada TEC82, Washington, 1982, pp. 138–151Google Scholar
  17. [Lod87] Lodaya, K.: Proof theory for exception handling in distributed programs. Ph.D. Thesis, Tech. Rep. CS-87/30. TIFR, 1987Google Scholar
  18. [LP80] Luckham, D.C., Polak, W.: Ada exception handling: an axiomatic approach. ACM Trans. Prog. Lang. Syst.2 (2), 225–233 (1980)MATHCrossRefGoogle Scholar
  19. [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)]CrossRefMathSciNetGoogle Scholar
  20. [OG76] Owicki, S.S., Gries, D.: An axiomatic technique for parallel programs I. Acta Informatica6 319–340 (1976)MATHCrossRefMathSciNetGoogle Scholar
  21. [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, 1988Google Scholar
  22. [Plo81] Plotkin, G.D.: A structural approach to operational semantics. DAIMI FN-19. Arhus University 1981Google Scholar
  23. [Plo83] Plotkin, G.D.: An operational semantics for CSP. Proc. IFIP Conf. Formal Description of Programming Concepts II, Garmisch-Partenkirchen, 1983, pp. 199–225Google Scholar
  24. [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 1885Google Scholar

Copyright information

© Springer-Verlag 1990

Authors and Affiliations

  • K. Lodaya
    • 1
  • R. K. Shyamasundar
    • 1
    • 2
  1. 1.Computer Science GroupTata Institute of Fundamental ResearchBombayIndia
  2. 2.Department of Computer SciencePennsylvania State UniversityUniversity ParkUSA
  3. 3.The Institute of Mathematical SciencesMadrasIndia

Personalised recommendations