Skip to main content

Concurrent runtime checking of annotated Ada programs

  • Session 1 Software Technology
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 241))

Abstract

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.

This research was supported by the Defense Advanced Research Projects Agency under contract N00039-84-C-0211, and by the National Aeronautics and Space Administration under Grant NAGW-419.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Ada Programming Language Reference Manual. US Department of Defense, US Government Printing Office, February 1983. ANSI/MIL-STD-1815A-1983.

    Google Scholar 

  2. 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 

  3. 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 

  4. B. Krieg-Brückner. Consistency checking in Ada and Anna: a transformational approach. Ada Letters, 3(2):46–54, September–October 1983.

    Google Scholar 

  5. David J. Lu. Watchdog processors and VLSI. In Proceedings of the National Electronics Conference (Volume 34), pages 240–245, October 1980.

    Google Scholar 

  6. 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 

  7. 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 

  8. 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 

  9. 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 

  10. 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 

  11. 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 

  12. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Kesav V. Nori

Rights and permissions

Reprints and permissions

Copyright information

© 1986 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Rosenblum, D.S., Sankar, S., Luckham, D.C. (1986). Concurrent runtime checking of annotated Ada programs. In: Nori, K.V. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1986. Lecture Notes in Computer Science, vol 241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17179-7_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-17179-7_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-17179-9

  • Online ISBN: 978-3-540-47239-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics