Certifier_1 is used to certify Ada systems in the Public Ada Library
Date/Time of Processing: Tuesday 07 June 1994 12:42:11Am Overall Assessment of System: OK Classification of System: B Basis of Classification -- Syntax Errors PASS Completeness PASS Independence from External Libraries FAIL Independence from a Specific Ada Compiler PASS Explanations for failures -- System withs non-standard library units that are not provided Number of ... Files 1 Library Units 42 Lines 13513 Statements 2833 Comments 4817 Unidentified Withed Units -- 5 unidentified withed units Note from the PAL Certifier: All of these unidentified library units can be found in CS Parts.
languages/ada/swtools/cert1: File Name Size --------- ---- README 398 cert1.zip 872,220 Totals ============== ============== 2 Files 872,618
Certifier_1 The second stage in the development of the Public Ada Library (PAL) has begun with the introduction of the concept of certification to the Ada source code in the library. A program, Certifier_1, has been created that will be initially used to evaluate all Ada source code submitted to the PAL. Certifier_1 has the ability to analyze thousands of files in a single pass, checking on their interdependencies. It ranks the files it is asked to analyze as OK or NOT OK and assigns a letter grade to the system (A, B, or C is OK, D and F are NOT OK). Certifier_1 contains a lexical analyzer and a parser for the Ada83 language. A grade of F is assigned to the system if syntax or lexical errors are encountered. Certifier_1 also builds an internal data structure describing the interdependencies of the library units and subunits. If stubs (subunit bodies) are missing and there are no syntax or lexical errors, a grade of D is assigned to the system indicating that major parts of it are missing. This is not necessarily bad; the Abstractions library from Intermetrics, for instance, received a letter grade of D because of missing subunits, but, when the Intermetrics Standards Checker was evaluated with Abstractions, the Standards Checker code filled in the missing subunits, giving the combined Standards Checker and Abstractions system a grade of A. Certifier_1 also checks on compiler-specific pragmas, the use of machine code, and the withing of library units that are not a part of the analyzed code. It awards lower grades (B and C) if all else is OK and one of these issues comes up. A grade of a B or a C may or may not mean there is a problem. Compiler-specific library units may be employed, causing the lower grade, for example. Also, it may be possible to raise the grade by including another components library, like CS Parts or New Abstractions, in the evaluation to fill in the missing library units. However, a B or a C may also mean that code has been omitted. Certifier_1 generates two reports: a report for inclusion in the PAL database entry on the item and a log file which describes details on the problems encountered, including line numbers and file names on or near which the problems can be found. Log reports can be found for each item in the PAL by checking in the directory languages/ada/userdocs/catalog/c1_rpts. Reports are named after the items on which they report; ada_sda.c1, for instance, is the report associated with the Software ID file ada_sda.sid. Certifier_1 is by no means a final solution to the problem of certification of reusable software in a library. However, it is a start. It does not beat a compiler by any means, but it does provide a quick, first-look solution. It does not determine logical errors or problems with completeness. Many things can slip through Certifier_1, but, likewise, many things do not. It is a first step.
1.1 6 June 94 Richard Conn Initial release to the PAL
This prologue must be included in all copies of this software. Restrictions on use or distribution: NONE
This software and its documentation are provided "AS IS" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist. The user is advised to test the software thoroughly before relying on it. The user must assume the entire risk and liability of using this software. In no event shall any person or organization of people be held responsible for any direct, indirect, consequential or inconsequential damages or lost profits.