APPENDIX A. SURVEY INSTRUMENT The data collection form used in the survey is provided in the pages that follow. Two minor changes to the "System Life-Cycle" portion of the data collection form were made to tailor it for the AIS survey: 1) Engineering and Manufacturing Development was replaced by Development, and 2) Major Modification was replaced by Operations and Support. Language Survey 1. Name of Program: ________________________________________ 2. System Name (if different than above): ______________________ 3. Acquisition Category: I: ___, II: ___, III: ___, IV: ____ 4. System Life-Cycle Phase: 5. Total Current Source Lines of Code: Concept Exploration: ____ 1,000 - 99,999: ____ Demonstration/Validation: ____ 100,000 - 499,999: ____ Engineering and Manufacturing Development: ____ 500,000 - 999,999: ____ Production and Deployment: ____ 1,000,000 - 4,999,999: ____ Major Modification: ____ 5,000,000+: ____ Please complete the remaining portion of the form by indicating the programming languages currently being used in developing or maintaining all the software (e.g., operational, support) for this program/project. - For each language being used, estimate the amount of usage in the appropriate "% of Total" column. Most programs should use percentage of source lines of code compared to the total number of source lines of code. However, if your program uses a different method for this calculation (e.g., function points), use this percentage and make a note on page 4. - Most languages identified on page 2 have a year designation that refers to a specific language version. If you are unable to identify the specific version, please provide supportive information on page 4. - For second generation (assembly) languages, we are asking for a count of distinct versions being used. The "% of Total" column should be filled out for the aggregate of all assembly languages being used on your program. - Definitions for language generations are found on page 3. - If your language version is not listed, identify the version in the space provided on page 4. Provide any comments or additional information on page 4. Language Type Language Name and Version % of Total <5% 5- 25% 25 -50% 50 -75% >75% First Generation Machine Second Generation Assembly (Provide Count of Distinct Versions Being Used): ___________ Third Generation Ada 83 ALGOL ALGOL 60 ALGOL 68 APL 89 BASIC BASIC 78 (minimal) BASIC 87/93 (full) C 89 C++ (identify version on page 4) CHILL 89 COBOL COBOL pre-85 COBOL 85 CMS-2 CMS-2 Y CMS-2 M FORTRAN FORTRAN pre-91/92 FORTRAN 91/92 JOVIAL JOVIAL pre-J73 JOVIAL J73 LISP (identify version on page 4) MUMPS MUMPS pre-90 MUMPS 90 Pascal Pascal pre-90 Pascal 90 (extended) PL/I PL/I 76/87/93 PL/I 87/93 subset PROLOG (identify version on page 4) SIMULA SIMULA pre-67 SIMULA 67 Smalltalk (identify version on page 4) TACPOL Others: list and identify on page 4 Fourth Generation e.g., SQL, RPG, Clipper, Visual BASIC Fifth Generation e.g., Knowledge/rule base shells Special Purpose Languages Application Area Generic Language Name Version Name and/or Number % of Total <5% 5 - 25% 25 -50% 50 -75% >75% Equipment Checkout ATLAS Hardware Description VHDL CDL Simulation GPSS SIMSCRIPT CSSL Signal Processing SPL/1 Space Programming SPL Statistics SPSS SAS Robotics Languages AL AML KAREL Expert System Languages KRL OPS5 The following definitions are provided for language generation: - A first generation language is the same as a machine language, usually consisting of patterns of 1's and 0's with no symbolic naming of operations or addresses. - A second generation language is the same as assembly language. - A third generation language is a high order language that requires relatively little knowledge of the computer on which a program will run, can be translated into several different machine languages, allows symbolic naming of operations and addresses, provides features designed to facilitate expression of data structures and program logic, and usually results in several machine instructions for each program statement. - A special purpose language is used for special-purpose application areas such as robotics, machine tool control, equipment testing, civil engineering, and simulation. Problem-oriented languages are a subset of third generation languages. - A fourth generation language is designed to improve the productivity achieved by high order (third generation) languages and, often, to make computing power available to non-programmers. Features typically include an integrated database management system, query language facility, report generator, screen definition facilities, graphics generators, decision support capabilities, and statistical analysis functions. Usually available as components of a commercial off-the-shelf software package. - A fifth generation language incorporates the concepts of knowledge-based systems, expert systems, inference engines, and natural language processing. Please provide the language name, version, generation, application area (for special purpose languages) and a reference to the manual (i.e., title, date and publisher) for each programming language or version not listed on page 2 or 3. Provide any additional information that would prove useful in uniquely identifying the language. Language Name, Version, etc. Manual Title, Date, and Publisher _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________ Additional Comments _____________________________________________________________________________________ _____________________________________________________________________________________ _____________________________________________________________________________________