A common requirement on future safety-critical systems is to support hardware interchangeability, e.g. Integrated Modular Avionic systems. Interchangeability facilitates technology upgrades within a system when components become obsolete. This occurs due as hardware computer components are often superseded within a few years, whereas the total system may have a lifetime of decades. Hardware interchangeability, implies that software needs to be moved to a new platform and execute with minimal rework or disturbance to the rest of the system. Movement of software to a new (different) hardware platform is a difficult proposition without significant rework. For safety-critical systems, the rework could include substantial test, analysis, verification and validation efforts, adding to the overall cost of the change. In this paper, the problem of movement of software to a new platform is considered, within the critical systems domain. The solution to the problem proposed in this paper is Portable Code whereby source code is compiled to an intermediate portable form that can then be instantiated to, or directly executed by, any platform. This solution can remove much or all of the rework costs involved in moving software to a new platform, thus substantially reducing system lifecycle costs. The contributions of this paper are twofold. Firstly, a Portable Code suitable for critical systems is described. This is a subset of an existing portable code, namely ANDF. Secondly, a compilation approach suitable for portable code is described. This has the benefit of being traceable, thus increasing the ability to perform static analysis at the portable code level, in turn greatly increasing the ability to move the code to a new platform without invalidating analysis and other evidence gathered for the original platform.

BibTex Entry

@inproceedings{Audsley1999,
 author = {N. Audsley and I. Bate and A. Grigg},
 booktitle = {Proceedings of the 6th International Conference on Real-Time Computing Systems and Applications (RTCSA'99)},
 category = {design,languages},
 month = {Dec},
 optaddress = {},
 optannote = {},
 optcrossref = {},
 opteditor = {},
 optkey = {},
 optnote = {},
 optnumber = {},
 optorganization = {},
 optpublisher = {},
 optseries = {},
 optvolume = {},
 pages = {111-119},
 title = {Portable Code for Complex, Critical Systems},
 year = {1999}
}