Previous | Table of Contents | Next |
Tables 10.1 and 10.2, quoted from the VCL with minor reformatting, show the actual ACVC 2.01 test profile run in March 1997, for the GNU Ada 95 (GNAT) compiler under Solaris.
Test Categories | Passed | NA | NS | Withdrawn | Totals |
---|---|---|---|---|---|
Ada 9X Basic | 2817 | 33 | 0 | 11 | 2861 |
Real Time | 51 | 0 | 0 | 0 | 51 |
OOP | 54 | 0 | 0 | 0 | 54 |
Type Extensions in Child Units | 32 | 0 | 0 | 2 | 34 |
Child Library Units | 37 | 0 | 0 | 0 | 37 |
Predefined Language Environment | 26 | 0 | 0 | 1 | 27 |
Mixed Features | 180 | 0 | 0 | 8 | 188 |
Totals | 3197 | 33 | 0 | 22 | 3252 |
Annex | Passed | NA | NS | Withdrawn | Totals |
---|---|---|---|---|---|
C Syst Prog | 4 | 0 | 0 | 3 | 7 |
D Real Time Syst | 26 | 4 | 0 | 1 | 31 |
E Dist Syst | 8 | 0 | 0 | 0 | 8 |
F Info Systems | 3 | 0 | 0 | 3 | 6 |
G Numerics | 5 | 0 | 0 | 0 | 5 |
H Safety/Security | 0 | 0 | 0 | 0 | 0 |
Totals | 46 | 4 | 0 | 7 | 57 |
10.2.3.3. What Does It All Mean?
Ada compiler validation, for all its openness, has been widely misunderstood in the community at large. It is important to understand what validation does not demonstrate.
First, validation does not, and cannot, demonstrate that a compiler is free of bugs. All we can say is that a validated compiler has passed a large set of standard, publicly distributed, conformance tests. However, to use a maxim attributed to Edsger Dijkstra, Testing can show only the presence of bugs; it cannot show the absence of bugs. On the other hand, compiler developers would like their products to be as bug-free as possible, so they continue to develop tests. Compiler vendors have their own (highly proprietary) test libraries, in addition to the ACVC; these libraries (we assume) not only implement the vendors internal test design, but also incorporate regression suites based on the experiences of that vendors actual users. As with all programs of nontrivial size, as compilers mature, they exhibit fewer and fewer bugs over time.
Second, validation does not assess the performance (time and space resources) of a compiler. For this purpose, various benchmark suites have been developed, but running these is not a part of the validation process.
We cannot expect validation magically to suspend all the laws of large-program development. Validation cannot guarantee perfection. However, it can, and, in the Ada case, it does, contribute much to our confidence in a compilers adherence to the language standard. An Ada compiler compiles Ada, accepting and properly translating our valid programs and rejecting our invalid ones, according to the Reference Manual, to the extent that it is humanly possible to test it. In a software industry in which languages have tended to be poorly defined moving targets, with weak or nonexistent standards and no public validation process, this is real progress.
This section discusses the general state of Ada in use in defense and non-defense projects, Ada in education, and the general availability of Ada 95 compilers.
As we know, Ada was originally commissioned by the Department of Defense. On the other hand, it was never DoD property and has, from its inception in the early 1980s, been chosen for projects well outside the defense sector. Some of its earliest applications were in purely commercial management systems: a payroll system at a truck manufacturer and a job scheduling system at a printing company. The purpose of this section is to bring you up to date on the general state of Ada usage in the world.
Previous | Table of Contents | Next |