Concurrent runtime checking of annotated Ada programs
Anna is a language for writing machine-processable annotations of Ada programs. One of the main applications of Anna is the runtime checking of an Ada program for consistency with its formal specifications written in Anna. On single-processor systems, Anna runtime checks are used during testing and debugging of software.
This paper describes strategies for distributing Anna runtime checks so that they are executed in parallel with the Ada program. Concurrent checking of an annotated program can offer a substantial computational speedup over a sequentially checked version of the same program. Concurrent checking of Anna is therefore a crucial step in producing a self-checking program by allowing runtime checks for annotations to reside permanently in production versions of the program. Parallel checking will not always be useful in self-checking code, but certain kinds of annotations require parallel checking in real-time and interactive programs.
This paper defines an efficient parallel checking model in which checking is performed by Ada tasks running in parallel with the underlying Ada program being checked. The difficulties in reporting Anna consistency violations in a parallel environment are also described. Finally, the paper discusses some of the practical aspects of mixing checking strategies whereby sequential checking may be applied to some kinds of annotations and distributed checking to other kinds.
KeywordsCheck Code Sequential Check Check Function Object Annotation Concurrent Error Detection
Unable to display preview. Download preview PDF.
- [Ada83]The Ada Programming Language Reference Manual. US Department of Defense, US Government Printing Office, February 1983. ANSI/MIL-STD-1815A-1983.Google Scholar
- [EAM85]A. Ersoz, D. M. Andrews, and E. J. McCluskey. The Watchdog Task: Concurrent Error Detection Using Assertions. Technical Report 85–267, Computer Systems Laboratory, Stanford University, May 1985.Google Scholar
- [EBGW83]A. Evans, K.J. Butler, G. Goos, and W. A. Wulf. DIANA Reference Manual. Tartan Laboratories, Inc., Pittsburgh, PA, revision 3 edition, 1983.Google Scholar
- [Kri83]B. Krieg-Brückner. Consistency checking in Ada and Anna: a transformational approach. Ada Letters, 3(2):46–54, September–October 1983.Google Scholar
- [Lu80]David J. Lu. Watchdog processors and VLSI. In Proceedings of the National Electronics Conference (Volume 34), pages 240–245, October 1980.Google Scholar
- [LGvH*79]David C. Luckham, S. M. German, F. W. von Henke, R. A. Karp, P. W. Milne, D. C. Oppen, W. Polak, and W. L. Scherlis. Stanford Pascal Verifier User Manual. Technical Report 79–731, Department of Computer Science, Stanford University, March 1979. (Program Analysis and Verification Group Report 11.).Google Scholar
- [LvH85]David C. Luckham and F. W. von Henke. An overview of Anna, a specification language for Ada. IEEE Software, 2(2):9–23, March 1985.Google Scholar
- [LvHKO84]David C. Luckham, F. W. von Henke, B. Krieg-Brückner, and O. Owe. Anna—A Language for Annotating Ada Programs. Technical Report 84–261, Computer Systems Laboratory, Stanford University, July 1984. (Program Analysis and Verification Group Report 24).Google Scholar
- [MM85]A. Mahmood and E. J. McCluskey. Concurrent Error Detection Using Watchdog Processors—A Survey. Technical Report 85–266, Computer Systems Laboratory, Stanford University, June 1985.Google Scholar
- [Ros85]David S. Rosenblum. A methodology for the design of Ada transformation tools in a DIANA environment. IEEE Software, 2(2):24–33, March 1985.Google Scholar
- [SR86]Sriram Sankar and David S. Rosenblum. The Complete Transformation Methodology for Sequential Runtime Checking of an Anna Subset. Technical Report 86–301, Computer Systems Laboratory, Stanford University, June 1986. (Program Analysis and Verification Group Report 30.).Google Scholar
- [SRN85]Sriram Sankar, David S. Rosenblum, and Randall B. Neff. An implementation of Anna. In Ada in Use: Proceedings of the Ada International Conference, pages 285–296, Cambridge University Press, May 1985.Google Scholar