This article presents a dynamic analyzer for Ada programs called AIDA.
ln software engineering, previous dynamic analyzers have often incorp
orated first-order logic assertion languages. For dynamic testing of b
oth 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 buildi
ng a dynamic analyzer for Ada programs. AIDA is designed to test, debu
g, and specify programs written in the Ada language. It affects the in
strumentation of programs as well as collecting, organizing, and repor
ting of results of the instrumented program. The instrumentation appro
ach is based on the idea that the intended function of a program can o
ften be specified in terms of assertions or values that must be assume
d by variables at certain strategic points in the program. This articl
e describes the design, implementation, and experimental evaluation of
AIDA. The goal of this work is to apply AIDA as a comprehensive dynam
ic analyzer for Ada programs. AIDA can handle sequential processes and
concurrent tasks, and it can understand fully all Ada statements.