An implementation of Anna

  • Authors:
  • Sriram Sankar;David Rosenblum;Randall Neff

  • Affiliations:
  • Program Analysis and Verification Group, Computer Systems Laboratory, Stanford University, Stanford, California;Program Analysis and Verification Group, Computer Systems Laboratory, Stanford University, Stanford, California;Program Analysis and Verification Group, Computer Systems Laboratory, Stanford University, Stanford, California

  • Venue:
  • SIGAda '85 Proceedings of the 1985 annual ACM SIGAda international conference on Ada
  • Year:
  • 1985

Quantified Score

Hi-index 0.00

Visualization

Abstract

Anna is a language extension of Ada to include facilities for formally specifying the intended behavior of Ada programs. It augments Ada with precise machine-processable annotations so that well established formal methods of specification and documentation can be applied to Ada programs.This paper describes an implementation of a subset of Anna. The implementation is a transformer that accepts as input an Anna parse tree and produces as output an equivalent Ada parse tree that contains the necessary executable runtime checks for the Anna specifications. An approach called the Checking Function Approach is used. This involves the generation of a function for each annotation and generating calls to these functions at appropriate places. The transformer has to take care of various details like hiding, overloading, nesting, etc.It is hoped that the transformer will eventually cover most of Ann and have various features like a good user interface, interaction with a symbolic debugger, and optimization of runtime checks for permanent inclusion.