Abstract This paper gives an overview of safer language subsets in general and considers one widely-used one, MISRA C, in particular. The rationale, specification, implementation and enforcement of a safer language subset each introduce particular problems which has led to their inconsistent take-up over the years even in applications which may be safety-related and definitely need subset restrictions. Each of these areas will be discussed illustrating practical problems which may be encountered with standards in general before focussing on the widely used MISRA C standard [MISRA C guidelines (1998)]. The approach taken is necessarily empirical and where it is able quotes measurements. The real objective of this paper is to produce an empirically based taxonomy of programming language subset rules to bring all these issues together and promote the concept that a safer subset must be based on measurement principles however crudely they are practised currently in software development. The concept of signal to noise ratio of a programming standard is also introduced.
[1]
Les Hatton,et al.
The T-experiments: errors in scientific software
,
1996,
Quality of Numerical Software.
[2]
Andrew Koenig,et al.
C Traps and Pitfalls
,
1989
.
[3]
Les Hatton,et al.
Safer C - developing software for high-integrity and safety-critical systems
,
1995,
McGrawHill international series in software engineering.
[4]
Peter Van der Linden.
Expert C Programming
,
1994
.
[5]
Shari Lawrence Pfleeger,et al.
Investigating the Influence of Formal Methods
,
1997,
Computer.
[6]
Edward Nash Yourdon.
Classics in Software Engineering
,
1979
.
[7]
John Staples,et al.
Do Formal Methods Really Work?
,
1996,
Australian Software Engineering Conference.
[8]
David A. Spuler.
C++ and C debugging, testing, and reliability: the prevention, detection, and correction of program errors
,
1994
.