A Survey of Computer Programming Languages
(DoD Language Survey)
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: Concept Exploration: ____
Demonstration/Validation: ____
Engineering and Manufacturing Development: ____
Production and Deployment: ____
Major Modification: ____

5. Total Current Source
    Lines of Code:
1,000 - 99,999: ____
100,000 - 499,999: ____
500,000 - 999,999: ____
1,000,000 - 4,999,999: ____
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.

  • Most languages identified in Table 1 have a year designation that refers to a specific language version. If you are unable to identify the specific version, please provide supportive information.

  • 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 after Table 2.

  • If your language version is not listed, identify the version in the space provided below.

Table 1

Language Type Language Name and Version % of Total
 <5%5- 25%25 -50%50 -75% >75%
First GenerationMachine     
Second GenerationAssembly (Provide Count of Distinct Versions Being Used): ___________     
Third GenerationAda 83      
ALGOL 68     
APL 89     
BASICBASIC 78 (minimal)     
BASIC 87/93 (full)     
C 89     
C++ (identify version on page 4)     
CHILL 89     
COBOLCOBOL pre-85     
COBOL 85     
CMS-2CMS-2 Y     
CMS-2 M     
FORTRANFORTRAN pre-91/92     
FORTRAN 91/92     
JOVIAL J73     
LISP (identify version on page 4)     
MUMPSMUMPS pre-90     
MUMPS 90     
PascalPascal pre-90     
Pascal 90 (extended)     
PL/IPL/I 76/87/93     
PL/I 87/93 subset     
PROLOG (identify version on page 4)     
SIMULASIMULA pre-67     
SIMULA 67     
Smalltalk (identify version on page 4)      
Others: list and identify on page 4      
Fourth Generatione.g., SQL, RPG, Clipper, Visual BASIC      
Fifth Generatione.g., Knowledge/rule base shells      

Table 2: Special Purpose Languages

Application AreaGeneric Language NameVersion Name and/or Number% of Total
 <5% 5 - 25% 25 - 30% 50 - 75%>75%
Equipment CheckoutATLAS       
Hardware DescriptionVHDL       
Signal ProcessingSPL/1       
Space ProgrammingSPL       
Robotics LanguagesAL       
Expert System LanguagesKRL       

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 above. Provide any additional information that would prove useful in uniquely identifying the language.

Language Name, Version, etc.

Manual Title, Date, and Publisher

Additional Comments

< Previous Page Contents Search Next Page >

1 2 3 4 5 6

Appendix A Appendix B References
Acronyms Figures Tables