AIDA: A dynamic analyzer for Ada programs

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.

[1]  I. Mearns,et al.  Axioms and proof rules for Ada tasks , 1982 .

[2]  Leon G. Stucki,et al.  New assertion concepts for self-metric software validation , 1975, Reliable Software.

[3]  Richard E. Fairley,et al.  Tutorial: Static Analysis and Dynamic Testing of Computer Software , 1978, Computer.

[4]  David C. Luckham,et al.  An Overview of Anna, a Specification Language for Ada , 1985, IEEE Software.

[5]  Zohar Manna,et al.  Verification of concurrent programs, Part I: The temporal framework , 1981 .

[6]  John Barnes,et al.  Programming in ADA , 1989 .

[7]  Ben C. Moszkowski,et al.  Executing temporal logic programs , 1986, Seminar on Concurrency.

[8]  Brent Hailpern Verifying Concurrent Processes Using Temporal Logic , 1982, Lecture Notes in Computer Science.

[9]  A. Pnueli The Temporal Semantics of Concurrent Programs , 1979, Theor. Comput. Sci..

[10]  D C Luckham,et al.  An environment for Ada software development based on formal specification , 1987, ALET.

[11]  David Luckham,et al.  Debugging Ada Tasking Programs , 1985, IEEE Software.

[12]  Richard N. Taylor,et al.  Newton -- A Dynamic Program Analysis Tool Capabilities Specification ; CU-CS-200-81 , 1981 .

[13]  Norman H. Cohen Ada as A Second Language , 1986 .

[14]  Z. Manna,et al.  Verification of concurrent programs: a temporal proof system , 1983 .

[15]  David C. Luckham,et al.  Task Sequencing Language for Specifying Distributed Ada Systems , 1987, PARLE.

[16]  François Charpillet,et al.  Representing and Propagating Constraints in Temporal Reasoning , 1991, AI Commun..

[17]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[18]  Leon J. Osterweil,et al.  Integrating the testing, analysis and debugging of programs , 1984 .

[19]  Leslie Lamport,et al.  "Sometime" is sometimes "not never": on the temporal logic of programs , 1980, POPL '80.