Ada drives Bound-T
March 20, 2010 — Bound-T is a novel program analysis tool that takes the object code representation of an embedded program and analyzes it to produce bounds on worst-case execution time and worst-case stack usage. It supports a wide variety of embedded target processors, and (since it processes object code), it supports virtually any programming language and development methodology.
Bound-T was developed completely in Ada other than a couple external mathematics packages. Niklas Holsti, Lead Engineer at Tidorum Ltd. says "The Bound-T tool is meant to help the verification of high-reliability software. Thus it is both important and natural that Bound-T itself should use a programming language that emphasises reliability."
Holsti has found that many features of Ada help improve the reliability of a tool. He notes "Ada makes a clear separation between the interface of a module, and the implementation of the module. For Bound-T, in particular, this helps to separate the general, target-independent modules from the target-specific modules." With some 480 packages, reduced coupling is critical to managing the complexity of Bound-T.
Ada's checks that both uses and implementations of a module match the interface of the module prevent many errors and reduce debugging time.
Bound-T also makes use of object-oriented programming as embodied by Ada's tagged types to reduce dependenies between modules while not hampering further development and refinement of the modules.
Holsti summarizes "Ada is the outstanding choice for reliability, through its strong support for clear, problem-oriented design and its thorough consistency checks at compile-time and at run-time."

For more on Bound-T's use of Ada, see this description of the product's implementation.
For more on Bound-T itself, see the product's home page.
# # #