AdaCore + Medical

When lives are on the line, software can’t fail. AdaCore’s proven technology and timely expertise provide the extra assurance that medical device developers, regulators, doctors and patients need so they can focus on what is really important - saving human lives.

Each year, the US Food and Drug Administration (FDA) receives several hundred thousand medical device reports of suspected device-associated deaths, serious injuries and malfunctions. While the medical device market is a highly competitive environment where price and time-to-market are critical factors, device manufacturers are spending more and more money and energy to meet increasing safety requirements imposed by the FDA. In addition, with medical devices now needing to be accessed by external equipment for various reasons, questions about security need to be raised to ensure that equipment and software are protected from potential malicious intent.

Preventing errors from being introduced into software during development is the optimal solution

It's preferable (and less expensive) if errors are detected at the outset, before they settle into the delivered code. And here is where the Ada language and AdaCore’s support tool technologies make all the difference.

Ada has a long history of successful usage for many types of safety- and security-critical software. The Ada programming language enables developers to catch errors at compile time (vs. through significant debugging as with other languages). Ada 2012’s contract-based programming helps embed low-level requirements into the source program as assertions that can be checked at run time or verified statically.

Like Ada, all AdaCore products were designed with quality in mind. AdaCore offers a number of Ada IDEs, tools and subsets for use in developing safety-critical systems that are reliable, predictable and analyzable. This well-crafted combination of tools and services allows your team to take full advantage of the benefits that Ada offers, and helps ensure a smooth development process.

  • Cost-effective development
  • Errors caught at compile time
  • Run-time integrity with contract-based programming
  • Code review through automated static analysis
  • Real-time response

Software language selection can reduce vulnerability

Safety certification standards, whether process- or product-based, tend to be language blind, but that does not mean that the choice of languages is insignificant. Languages differ with respect to their susceptibility to vulnerabilities, and the language choice affects the ease or difficulty of achieving safety certification. 

With its emphasis on sound software engineering principles Ada supports the development of high-integrity applications, including those that need to be certified against safety and security standards. For example, strong typing means that data intended for one purpose will not be accessed via inappropriate operations; errors such as treating pointers as integers (or vice versa) are prevented. And Ada’s array bounds checking prevents buffer overrun vulnerabilities that are common in other languages.

The changing dynamics of medical device regulation

AdaCore’s specialized tools, services, and certification materials are deeply rooted in helping develop applications that must meet leading safety-critical standards. With the growing number of medical device vendors, FDA Guidance has since been introduced, requiring device manufacturers to demonstrate safety through "assurance cases" for complex software that is being developed.The key is to apply assurance early in the software development process so that potential hazards can be avoided before they get into the product.

Gnat Pro


GNAT Pro is a robust and flexible Ada development environment. It includes professional-grade tools and support to allow development teams to take full advantage of the benefits Ada offers and ensure a smooth, cost-effective development process.

Spark Pro Square


SPARK is an Ada subset that exploits Ada 2012's contract-based programming features. SPARK tools can mathematically verify various safety- or security-related properties, such as absence of run-time errors. SPARK is reliable, preventing errors such as buffer overrun, and is predictable, with completely-defined semantics. It has a proven track record in both safety and security, and is highly analyzable, due to the language restrictions and to Ada's ability to specify subranges on scalar data.