This article presents a dynamic analyzer for Ada programs called AIDA. In software engineering, previous dynamic analyzers have often incorporated first-order logic assertion languages. For dynamic testing of both sequential and concurrent programs, however, temporal logic may be advantageous because it deals with the development of situations over time. AIDA investigates the applicability of temporal logic in building a dynamic analyzer for Ada programs. AIDA is designed to test, debug, and specify programs written in the Ada language. It affects the instrumentation of programs as well as collecting, organizing, and reporting of results of the instrumented program. The instrumentation approach is based on the idea that the intended function of a program can often be specified in terms of assertions or values that must be assumed by variables at certain strategic points in the program. This article describes the design, implementation, and experimental evaluation of AIDA. The goal of this work is to apply AIDA as a comprehensive dynamic analyzer for Ada programs. AIDA can handle sequential processes and concurrent tasks, and it can understand fully all Ada statements.
Read full abstract