GNATcheck – Coding Standard Verification Tool

GNATcheck meets the growing need for automated verification in safety-critical systems (avionics, space, railway, etc.), particularly those systems that need to satisfy the DO-178B (and the more recent DO-178C version)  standard. Developed by RTCA and EUROCAE, DO-178B / DO-178C 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.

With software innovation powering today’s successful aircraft, automatic coding standard verification is becoming more and more important. The highly structured nature of the Ada language makes it a natural choice for avionics development, with the addition of specialised tools like GNATcheck, GNAT Pro offers the most complete and integrated solution for coding standard verification compliant with DO-178B / DO-178C requirements.

Key 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 banning of 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, normalised 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 initialised, 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