Proof theory for exception handling in a tasking environment
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.
Unable to display preview. Download preview PDF.
- [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
- [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
- [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 1984Google 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 1982Google 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–151Google Scholar
- [Lod87] Lodaya, K.: Proof theory for exception handling in distributed programs. Ph.D. Thesis, Tech. Rep. CS-87/30. TIFR, 1987Google 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, 1988Google Scholar
- [Plo81] Plotkin, G.D.: A structural approach to operational semantics. DAIMI FN-19. Arhus University 1981Google Scholar
- [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
- [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