This file contains a copy of DoD Directive 5000.31 which was circulated with USDRE DeLauer memorandum of 06/10/83. (Ada IC point of contact: Greg Kee) DEPARTMENT OF DEFENSE DIRECTIVE 5000.31 SUBJECT: Computer Programming Language Policy References: (a) DoD Instruction 5000.31, "Interim List of DoD Approved High Order Programming Languages," November 24, 1976 (hereby canceled) (b) DoD Directive 5000.29, "Management of Computer Resources in Major Defense Systems." April 26, 1976 [Under Revision] A. REISSUANCE AND PURPOSE This Directive replaces reference (a) and specifies the computer programming languages authorized for use in Defense mission critical applications. It provides both policy and procedures for the manage- ment and control of these programming languages and their associated programming support environments. It authorizes the publication of DoD 5000.31-M, a manual which prescribes guidance and procedures governing the management of computer programming languages and programming support environments. B. APPLICABILITY AND SCOPE 1. This Directive applies to the office of the Secretary of Defense, the Military Departments, the Organization of the Joint Chiefs of Staff, and the Defense Agencies (hereinafter collectively referred to as "DoD Components"). 2. This Directive need not be applied retroactively to DoD systems for which a formal language commitment has been made in compliance with reference (a) before the effective date of this revision. C. DEFINITIONS Software engineering terms used in this Directive are defined in IEEE Standard 729-1983, "IEEE Standard Glossary of Software Engineering Terminology" or in reference (b). D. POLICY 1. The number of distinct programming languages used within DoD must be minimized. 2. All software developed for mission critical systems shall be developed and written in a programming language authorized by this Directive unless a waiver is obtained in accordance with this Directive. Waivers are required for the use of extensions or enhance- ments of authorized languages as well as for the use of unauthorized languages. Programming languages authorized for use in mission critical applications are set forth in Enclosure 1. 3. The configuration of programming languages approved for use in Defense systems must be controlled in accordance with appropriate configuration management directives. 4. The Ada* programming language shall become the single, common, computer programming language for Defense mission-critical applications. Effective January 1, 1984 for programs entering Advanced Development and July 1, 1984 for programs entering Full-Scale Engineering Development, Ada shall be the programming language. Only compilers which have been validated by the Ada Joint Program Office shall be used for software to be delivered to or maintained by the government. E. PROCEDURES 1. Control Agent. Each DoD-approved programming language is assigned to a designated control agency. The control Agency is responsible for maintaining a single standard definition of the assigned language and for making this definition document available as a Federal, DoD, military or adopted Industry Standard. For those languages, the definitions of which are industry standards controlled outside DoD, a DoD component is assigned for the required additional responsibilities and to represent DoD to the controlling organization. The control agency shall also be responsible for providing configuration control of the assigned language, and for gathering data and disseminating appropriate information regarding use of the language, its compilers and associated tools. The designated control agency for each authorized DoD language is set forth in Enclosure 1. 2. Waivers. a. A waiver need not be obtained for use of commercially available software for use in routine business or administrative applications (non-mission critical), or for use of an application-oriented (including problem-oriented) language, or for commercially available, off-the-shelf software if no modification of that software is anticipated over the life cycle. b. Waivers from the use of an approved programming language may be granted by the DoD Component only on a specific system or sub- system basis. The costs and risks associated with language prolifera- tion must be weighted against the waiver benefits accruing to the in- tended (sub)system. A summary of this analysis will be forwarded with each waiver granted to the Defense Computer Resources Board which will review Component-granted waivers and, within 30 days, may reverse or otherwise disapprove the waiver. 3. Addition or Deletion of Approved Languages. a. A Component may nominate a language for inclusion on the list of approved languages by submitting to the Defense Computer Re- sources Board a document which: (i) describes the language, (ii) pro- vides detailed rationale for adopting the language as a DoD-approved standard, (iv) sets forth an economic analysis of the impact of the language for its expected life-cycle, (v) includes a detailed plan for implementation and life cycle support of the language, and (vi) iden- tifies the DoD Component that will accept designation as Control Agency for the language. b. For deletions, the DoD Component nominating a language for removal from the list of approved languages will submit to the Defense Computer Resources Board a document which presents the rationale for deleting the language, including an impact analysis and a detailed plan for transitioning current programs which use the language to another of the approved languages. c. After receipt of the nomination document, the Defense Computer Resources Board will distribute the nominating document, re- quest dissenting reports, and schedule a briefing by the nominating DoD Component. d. The Defense Computer Resources Board will act upon the nomination within 60 days of the briefing by the nominating DoD Compo- nent. e. Appeals to decisions regarding the acceptance or re- jection of nominations may be submitted via the appropriate chain of command to the Office of the Under Secretary of Defense for Research and Engineering. F. RESPONSIBILITIES 1. The DEPUTY UNDER SECRETARY OF DEFENSE (RESEARCH AND ADVANCED TECHNOLOGY) shall be the DoD Senior Official for all activities related to this Directive and shall: a. Oversee, coordinate and implement the policies and procedures of this Directive; b. Advise the Office of the Secretary of Defense on all matters related to this Directive; and c. Be the authority for adding or deleting computer languages to or from the authorized list. 2. The HEADS OF THE DOD COMPONENTS shall: a. Implement this Directive within their respective organizations. b. Institute procedures and coordinate with the Defense Computer Resources Board. c. Designate a computer language Waiver Control Officer(s) who shall have responsibility for implementation of the waiver provisions and procedures of this Directive. d. Designate coordinating offices for each approved language which is of application interest, if their Component has not been assigned as control agent for it. e. Prepare and maintain a plan for the introduction of Ada, and the phase-out of other languages from consideration for new programs, which shall be coordinated with the Ada Joint Program Office for incorporation into the Ada Program Management Plan. f. Ensure that the use of the Ada Programming language by their Component is consistent with the Component's Ada introduction plan, that use of Ada language is permitted on an unrestricted basis, and that the use of the Ada programming language is actively encouraged. g. Designate a language control officer for each language for which the Component is assigned as the Language Control Agent, such officer to have the authority and responsibility for proper support for all associated language control activities. Each language control officer is authorized to issue, upon approval of the Defense Computer Resources Board, a revised version of the assigned language in order to provide modifications and improvements in satisfaction of validated requirements, or to resolve ambiguities in the defining document. Such revised versions should not be issued more frequently than once a year. G. EFFECTIVE DATE AND IMPLEMENTATION This Directive is effective immediately. Components shall forward five copies of implementing documents to the Under Secretary Of Defense, Research and Engineering, prior to October 1, 1983. Enclosure-1 1. Approved Computer Programming Languages APPROVED COMPUTER PROGRAMMING LANGUAGES ---------------------------------------- The DoD-approved Computer Programming Languages follow. In each case, the applicable standard is defined by the most recent official version of the designated document. 1. Ada; "Ada Programming Language", ANSI/MIL-STD-1815A, February,1983. Control Agency: American National Standards Institute DoD Control Agency: Ada Joint Program Office 2. CMS-2M "Computer Program Performance Specifications," NAVSEA 0967LP-598-2210, April 1982, and CMS-2Y; "CMS-2Y Programmers Reference Manuals M-5049, M-5044, April 15, 1981. Control Agency: Department of the Navy 3. JOVIAL (J73); Military Standard MIL-STD-1589B (USAF), 6 June 1980. Control Agency: Department of the Air Force 4. FORTRAN; "American National Standard X3.9-1978" Control Agency: American National Standards Institute DoD Control Agency: Department of the Air Force 5. COBOL; "American National Standard X3.23-1974" Control Agency: American National Standards Institute DoD Control Agency: Department of the Air Force NOTE: COBOL is to be used only for business or administrative applications. Consideration should be given to use of Ada where appropriate for machine independence. 6. Special Language for Automatic Test application: ATLAS and C/ATLAS; "IEEE Standard ATLAS Test Language," ANSI/IEEE Standard 416-1980; "IEEE Standard C/ATLAS Test Language, "IEEE Standard 716-1982; and "IEEE Standard C/ATLAS SYNTAX," IEEE Standard 717-1982. Control Agency: Institute of Electrical and Electronic Engineers DoD Control Agency: Department of the Navy End of List -----------