A Survey of Computer Programming Languages
(DoD Language Survey)
Executive Summary

EXECUTIVE SUMMARY

Background and Purpose

In June 1994 the Assistant Secretary of Defense for Command, Control, Communications and Intelligence commissioned a programming language survey of the Department of Defense (DoD). The purpose was to identify the number of programming languages being used today in the DoD as compared to 20 years ago when the DoD first began developing the Ada programming language.

A 1977 study, "A Common Programming Language for the Department of Defense-Background, History and Technical Requirements", identified "450" as the minimum, probable number of general purpose languages and dialects used in the DoD, but went on to say that the actual number was not known. How this estimate, and the method used to count root languages, versions, and dialects, came to be is still questioned. For this survey, as part of establishing a strong methodology, counting the number of languages used today required input from the organizations developing or maintaining automated information systems (AISs) and weapon systems. A census sample would include new systems, those being modernized, and those being maintained. For this study, a judgement sample of weapon systems was identified from the 1994 Presidential Budget requests for Research, Development, Test and Evaluation (RDT&E) programs exceeding $15 million and Procurement programs exceeding $25 million. Of the 1,300 programs identified, 423 programs were selected because they included software applications. The current DoD list of 53 major AISs was used as a sample population for non-weapon systems.

Experts in the field of programming languages have differed dramatically in classifying programming languages for counting purposes, particularly in defining the terms "dialect" and "version." For this paper, we use the term "dialect" to indicate a relatively minor change in a language whereas "version" indicates a larger change and usually has a different "name" although the new "name" may only be the concatenation of a different year or number to the baseline name (e.g., Jovial, Jovial 73). We counted a "version" of a root language as a distinct language. The methodology and data collection approach is explained in detail in this report to allow further expansion of the sample population.

Findings and Conclusions

  • The estimated 237.6 million source lines of code in this survey are distributed among five generations (Tables ES-1 and ES-2).

  • There are 37 third generation general and special purpose languages, the latter being used only in weapon systems. (Tables ES-3 and ES-4).

  • For both weapon systems and AISs, over 80% of the applications are written in third generation languages.

  • There is a greater use of fourth generation languages in AIS applications due to commercial off-the-shelf products for such applications as data management, interactive graphical displays, and editors.

  • There is greater use of first and second generation languages (machine and assembly, respectively) in weapon systems than in AIS applications. This difference is due to the use of special purpose embedded computers in weapon systems.

  • Most respondents indicated that more than one language is being used in application software. This multi-language use includes languages from all five generations. With modern programming languages and compilers, increased use of COTS products, and re-use of software components, it will become a common practice to produce applications with components written in different languages.

Table ES-1. Total SLOC by Language
Generation for Weapon System Responses

Language Generation Total SLOC Reported
(in millions)
First 3.90
Second 26.30
Third: General Purpose 148.38
         Special Purpose 3.70
Fourth 5.00
Fifth 0.29


Table ES-2. Total SLOC by Language
Generation for AISs Responses

Language Generation Total SLOC Reported
(in millions)
First 0.30
Second 0.63
Third: General Purpose 38.24
         Special Purpose 0.00
Fourth 10.81
Fifth 0.05


Table ES-3. Total SLOC by General
Purpose 3GL for Weapon Systems

Third Generation
Language & Version
Total SLOC Reported
(in millions)
Ada 83 49.70
C 89 32.50
Fortran pre-91/92 18.55
CMS-2 Y 14.32
Jovial 73 12.68
C++ 5.15
CMS-2 M 4.23
Other 3GLs 3.38
Pascal pre-90 3.62
Jovial pre-J73 1.12
Fortran 91/92 1.00
PL/I 87/93 subset 0.64
Basic 87/93 (full) 0.48
PL/I 76/87/93 0.36
Pascal 90 (extended) 0.29
Basic 78 (minimal) 0.17
LISP 0.10
Cobol pre-85 0.09
Cobol 85 0.00


Total 148.38

Table ES-4. Total SLOC by 3GL for AISs

Third Generation
Language & Version
Total SLOC Reported
(in millions)
Cobol 85 14.06
Cobol pre-85 8.59
Ada 83 8.47
Basic 87/93 2.18
C++ 2.05
C 89 1.55
Fortran 91/92 0.87
Fortran pre-91/92 0.47


Total 38.24


Recommendation

Accepting the number of 450 or more general purpose programming languages in use in the 1970s, we can see considerable progress has been made by the Military Departments and Agencies in reducing the number to 37 in major systems that are new or being modernized. Yet the survey indicates that a substantial legacy of applications remain that use older versions of programming languages, vendor-unique languages, and military-defined languages. The maintenance costs for these applications could be reduced and their reliability increased by converting these applications to a current version of a Federal Information Processing Standard language. Automated conversion methods should offer a cost-effective technology to facilitate this conversion. Re-engineering these applications in another language is also a cost reduction opportunity. Redundant code can be eliminated, software components can be re-used, and modern off-the-shelf programming tools can be used to improve maintainability and reliability.

Consequently, we recommend that Service and Defense Agency Program Managers regularly review their software applications to identify a migration strategy and plan for upgrading them to current versions of standards-based versions of languages and modern labor-saving tools. The progress in reducing the number of languages used, as shown in this survey, indicates that further reduction should be possible. Indeed, we recognize that several migration efforts are already ongoing now.


< Previous Page Contents Search Next Page >

1 2 3 4 5 6

Appendix A Appendix B References
Acronyms Figures Tables