AdaControl
Encyclopedia
AdaControl is a free tool that detects the use of
various kinds of constructs in Ada programs. Its first goal is to
control proper usage of style or programming rules, but it can also be
used as a powerful tool to search for use (or non-use) of various
forms of programming styles or design patterns. Searched elements
range from very simple, like the occurrence of certain entities,
declarations, or statements, to very sophisticated, like verifying
that certain programming patterns are being obeyed.

History

Adalog developed AdaControl under a contract of Eurocontrol, which developed the CFMU (Central Flow Management Unit), a million+ lines of code program (in Ada) to manage Air Traffic over Europe. Only automated tools could verify compliance of a program of that size to programming standards.

Since Eurocontrol had no interest in commercializing software, it was decided to release
AdaControl as free software. This had the benefit of helping the Ada community at large, and at the same time, allowed Eurocontrol to enjoy further improvements made by
the community. Later, other companies sponsored further development, creating a virtual consortium effect.

Features

AdaControl applies a set of controls to a set of Ada units. A control is defined by a rule
(and possibly a subrule) with appropriate parameters. Controls (as well as various commands used to adjust the behaviour of the program) are provided directly from the command line, from a file, or interactively.

There is a wide range of controls available. As of current version(1.12r3), there are 388 tests that can be performed by AdaControl. The number increases with each new release.

Adacontrol is written in Ada, using ASIS
Ada Semantic Interface Specification
The Ada Semantic Interface Specification is a layered, open architecture providing vendor-independent access to the Ada Library Environment. It allows for the static analysis of Ada programs and libraries.- References :...

for syntactic and semantic analysis. This gives the tool the same level of language accuracy as the underlying compiler.

Great care has been taken to make the tool easily extensible by the user.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK