|
ABSTRACT
A method is presented for using symbolic execution to generate the verification conditions required for proving correctness of programs written in a tasking subset of Ada. The symbolic execution rules are derived from proof systems that allow tasks to be verified independently in local proofs, which are then checked for cooperation. The isolation nature of this approach to symbolic execution of concurrent programs makes it better suited to formal verification than the more traditional interleaving approach, which suffers from combinatorial problems. The criteria for correct operation of a concurrent program include partial correctness, as well as more general safety properties, such as mutual exclusion and freedom from deadlock.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
BARRINGER, H., AND MEARNS, {. Axioms and proof rules for Ada tasks. In Proc. IEE 129 (1982), no. pt. E.
|
| |
3
|
BRAND, D., AND JOYNER, W. H. JR. Verification of protocols using symbolic execution. Comput. Networks 2 (1978), 351-360.
|
| |
4
|
|
| |
5
|
|
| |
6
|
DILLON, L. K., KEMMERER, R. A., AND HARRISON, r.J. An experience with two symbolic execution-based approaches to formal verification of Ada tasking programs. In Proceedings of the 2nd Workshop of Software Testing, Verification, and Analysis (Washington, DC, July 1988). IEEE Computer Society Press, New York, 1988, 114-122.
|
| |
7
|
FLOYD, R.W. Assigning meanings to programs. In Proceedings of the American Mathematical Society Symposia in Applied Mathematics 19 (1967), 19-31.
|
| |
8
|
|
 |
9
|
|
 |
10
|
|
| |
11
|
HARRISON, L. J., AND KEMMERER, R.A. An interleaving symbolic execution approach for the formal verification of Ada programs with tasking. In Proceedings of the 3rd International IEEE Conference on Ada Applications and Environments (Washington, DC, May 1988), 15-26.
|
| |
12
|
|
| |
13
|
KEMMERER, R. A., AND ECKMANN, S. V. UNISEX: A UNix-based symbolic EXecutor for Pascal. Softw. Pract. Exper. 15, 5 (May 1985), 439-457.
|
| |
14
|
KNIGHT, J. C., AND GRINE, V.S. Symbolic execution of concurrent Ada programs. Tech. Rep., Department of Computer Science, University of Virginia, Charlottesville.
|
| |
15
|
LAMPORT, r. The "Hoare logic" of concurrent programs. Acta Inf. 14 (1980), 21-37.
|
 |
16
|
|
| |
17
|
LUCKHAM, D. C., HELMBOLD, D. P., MELDAL, S., BRYAN, D. L., AND HABERLER, M.A. Task sequencing language for specifying distributed Ada systems: TSL-1. Tech. Rep., Program Analysis and Verification Group, Computer Systems Laboratory, Stanford University, Stanford, CA, 1987.
|
| |
18
|
LUCKHAM, D. C., AND VON HENKE, F.W. An overview of Anna, a specification language for Ada. IEEE Softw. (Mar. 1985), 9-22.
|
| |
19
|
M1SRA, J., AND CHANDY, $. M. Proofs of networks and processes. IEEE Trans. Softw. Eng. SE-7, 4 (July 1981), 417-426.
|
| |
20
|
|
 |
21
|
|
| |
22
|
YOUNG, M., AND TAYLOR, R. $. Combining static concurrency analysis with symbolic execution. In Proceedings of the Workshop on Software Testing ( July 1986).
|
REVIEW
"D. John Cooke : Reviewer"
The verification of complex systems—which may be concurrent
and may not terminate—is very important and usually very
difficult. This paper describes a technique for verifying certain
concurrent programs by using the established met
more...
|