Adding robustness to C++ Development

John Price

Technical Expert, MBDA UK

Whilst Ada remains the correct technical answer to High Integrity Software development in most domains, socio-economic pressures are reducing its take-up in medium to lower integrity environments where reliability remains an important factor. This makes it less visible as a choice when a high integrity language is required.

C++ has recently become the 2nd most popular programming language behind Python for software development TIOBE June 24 gives C++ 10.03% rank 2 vs Ada 0.80% rank 25.

This presentation describes the development of the “strong” library for C++ within MBDA. The “strong” library consists of a set of C++ templates and provides various features including.

1) Strong ranged types

a) Integers

b) Floats

c) Enums

d) Fixed point types

e) Modulo types

2) Array indexing by enum

3) Tuples with representation clauses and serialization / de-serialization functions

4) Lifetime checks of pointers and references

5) Variant records

6) Various compile and runtime checks.

7) Software exceptions with user replaceable handler (defaults to output of stack trace)

One of the limiting factors to the uptake of Ada is the lack of understanding of its basic features and why they are a good idea among the wider software development community, who have never used it. The “strong” library aims to make those features available to a wider audience who may then be more amenable to migrating to a language dedicated to their robust efficient implementation.


About John Price

John Price MEng CEng MIET. Graduated with a Masters in Electronic Engineering from Southampton University in 1999 before joining MBDA in January 2001. Have since been Software Project Leader and / or Software Design Authority for various missile subsystems on a number of missile programs, including Meteor, ASRAAM, CAMM, SPEAR3 and FC/ASW. Achieved the role of Technical Expert in 2024. Over the years John has spearheaded various automated code and test generation initiatives within MBDA, including the distribution of a single design onto an arbitrary number of executables and the conversion of sequence diagrams into test and verification scripts.

Sponsored by

Official Media Partners

Supported by