AdaCore GNATcheck Coding Standard Verification Tool

AdaCore recently announced the availability of GNATcheck, an integrated coding standard verification tool within the GNAT Pro development environment. GNATcheck meets the growing need for automated verification in safety-critical avionics systems, particularly those systems that need to satisfy the DO-178B standard, which was developed by RTCA and EUROCAE. GNATcheck is currently available as part of the GNAT Pro subscription. Pricing for GNAT Pro subscriptions starts at $14,000.

AdaCore’s GNATcheck is an extensible rule-based tool with an easy-to-use interface. It allows developers to completely define a coding standard (referred to as a “Software Code Standard” in DO-178B) as a set of rules, for example a subset of permitted language features. It verifies a program’s conformance with the resulting rules and thereby facilitates demonstration of a system’s compliance with DO-178B.

DO-178B defines the guidelines for development of aviation software in both the US and Europe and is being increasingly adopted by other related sectors, such as air traffic control and military applications. Work on qualifying GNATcheck as a verification tool (in a DO-178B context) is in progress. After this work is completed, GNATcheck’s status as a qualified tool will allow the evidence that it generates to be used as part of a system’s certification.

GNATcheck Features

  • An integrated Ada Restrictions mechanism for banning specific features from an application. This can be used to restrict features, such as tasking, exceptions, dynamic allocation, fixed or floating point, input/output and unchecked conversions
  • GNAT Pro specific Restrictions, which complement Ada’s set of restrictions, such as those banning the generation of implicit loops or conditionals in the object code, or the generation of elaboration code
  • Additional rules based on Ada semantics specification developed following extensive customer input, including detailed issues, such as ordering of parameters, normalized naming of entities and subprograms with multiple returns
  • Easy-to-use interface for creating and using a complete coding standard
  • Generation of project-wide reports, including evidence of the level of compliance to a given coding standard
  • Over 30 compile time warnings from GNAT Pro that detect typical error situations, such as local variables being used before being initialized, incorrect assumptions about array lower bounds, infinite recursion, incorrect data alignment, and accidental hiding of names
  • Style checks that allow developers to control indentation, casing, comment style, and nesting level

More info: AdaCore GNAT Pro for Ada