AdaControl

From Wikipedia, the free encyclopedia
AdaControl
Developer(s)Adalog
Written inAda with ASIS
Operating systemMicrosoft Windows, Linux, Mac OS X
Available inEnglish
TypeStatic code analysis
LicenseGMGPL
Websitewww.adalog.fr/en/adacontrol.html

AdaControl is a free tool licensed under the GMGPL that detects the use of various kinds of constructs in Ada programs and violations of programming style or design patterns. Detectable constructs range from the presence of control characters, naming dependencies, and if statements that could be replaced by switch statements; depth of calls and declarations that could be moved into an inner scope; to calls to normally paired operations, elaboration calls, side effects in instantiations, and calls to potentially blocking operations.[1]

The software was created and is maintained by Adalog and only distributed as source. It was created for Eurocontrol to help develop a program to manage Europe's air traffic.

History[edit]

The development of AdaControl by Adalog started in 2004, 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.[2]

Features[edit]

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.22r16c), there are 591 tests that can be performed by AdaControl. The number increases with each new release.[3]

In addition, AdaControl provides suggestions of fixes for a number of violations. When AdaControl is launched from the GPS environment, the fixes can be performed by clicking on an icon, just like for compiler messages. A companion tool can also apply all suggested fixes automatically.

Adacontrol is written in Ada, using ASIS for syntactic and semantic analysis. This gives the tool the same level of language accuracy as the underlying compiler. An European Commission evaluation found that this "makes the application consume a lot of resources (processor, disk, and memory)."[1]

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

References[edit]

  1. ^ a b Deprez, Jean-Christophe; Ruiz, Jose; Herraiz, Israel; Garcia Campos, Carlos (2003-03-21), Iese, Fraunhofer (ed.), Evaluation Report on Existing Tools and Existing F/OSS repositories (PDF), The QUALOSS Consortium, p. 27, retrieved 2024-05-31
  2. ^ On the benefits for Industrials of Sponsoring Free Software Development
  3. ^ AdaControl User's Guide
  4. ^ AdaControl Programmer's Manual

As of 08 December 2021, this article is derived in whole or in part from Adalog. The copyright holder has licensed the content in a manner that permits reuse under CC BY-SA 3.0 and GFDL. All relevant terms must be followed. The original text was at "AdaControl"

External links[edit]