ISO/IEC JTC 1/SC 22 was created in 1985, with the intention of creating a JTC 1 subcommittee that would address standardization within the field of programming languages, their environments and system software interfaces. Before the creation of ISO/IEC JTC 1/SC 22, programming language standardization was addressed by ISO TC 97/SC 5.[3] Many of the original working groups of ISO/IEC JTC 1/SC 22 were inherited from a number of the working groups of ISO TC 97/SC 5 during its reorganization, including ISO/IEC JTC 1/SC 22/WG 2 – Pascal (originally ISO TC 97/SC 5/WG 4), ISO/IEC JTC 1/SC 22/WG 4 – COBOL (originally ISO TC 97/SC 5/ WG 8), and ISO/IEC JTC 1/SC 22/WG 5 – Fortran (originally ISO TC 97/SC 5/WG 9).[3] Since then, ISO/IEC JTC 1/SC 22 has created and disbanded many of its working groups in response to the changing standardization needs of programming languages, their environments and system software interfaces.
Scope and mission
The scope of ISO/IEC JTC 1/SC 22 is the standardization of programming languages (such as COBOL, Fortran, Ada, C, C++, and Prolog), their environments (such as POSIX and Linux),[2] and systems software interfaces, such as:[4]
Specification techniques
Common facilities and interfaces
ISO/IEC JTC 1/SC 22 also produces common language-independent specifications to facilitate standardized bindings between programming languages and system services, as well as greater interaction between programs written in different languages.[5]
The scope of ISO/IEC JTC 1/SC 22 does not include specialized languages or environments within the program of work of other subcommittees or technical committees.[6]
The mission of ISO/IEC JTC 1/SC 22 is to improve portability of applications, productivity and mobility of programmers, and compatibility of applications over time within high level programming environments. The three main goals of ISO/IEC JTC 1/SC 22 are:[7]
To support the current global investment in software applications through programming languages standardization
To improve programming language standardization based on previous specification experience in the field
To respond to emerging technological opportunities
Structure
Although ISO/IEC JTC 1/SC 22 has had a total of 24 working groups (WGs), many have been disbanded when the focus of the working group was no longer applicable to the current standardization needs.[3] ISO/IEC JTC 1/SC 22 is currently made up of eight (8) active working groups, each of which carries out specific tasks in standards development within the field of programming languages, their environments and system software interfaces. The focus of each working group is described in the group’s terms of reference. Working groups of ISO/IEC JTC 1/SC 22 are:[8]
Working Group
Working Area
Status
ISO/IEC JTC 1/SC 22/WG 1
PLIP (Programming Languages for Industrial Processes)
ISO/IEC JTC 1/SC 22 works in close collaboration with a number of other organizations or subcommittees, some internal to ISO, and others external to it. Organizations in liaison with ISO/IEC JTC 1/SC 22, internal to ISO are:[2][6][9][10]
Countries pay a fee to ISO to be members of subcommittees.[11]
The 23 "P" (participating) members of ISO/IEC JTC 1/SC 22 are: Austria, Bulgaria, Canada, China, Czech Republic, Denmark, Finland, France, Germany, Israel, Italy, Japan, Kazakhstan, Republic of Korea, Netherlands, Poland, Russian Federation, Slovenia, Spain, Switzerland, Ukraine, United Kingdom, and United States of America.[12]
The 21 "O" (observing) members of ISO/IEC JTC 1/SC 22 are: Argentina, Belgium, Bosnia and Herzegovina, Cuba, Egypt, Ghana, Greece, Hungary, Iceland, India, Indonesia, Islamic Republic of Iran, Ireland, Democratic People’s Republic of Korea, Malaysia, New Zealand, Norway, Portugal, Romania, Serbia, and Thailand.[13]
Published standards and technical reports
ISO/IEC JTC 1/SC 22 currently has 98 published standards in programming languages, their environments and system software interfaces. Some standards published by ISO/IEC JTC 1/SC 22 within this field include:[14][15][16]
ISO/IEC Standard/Technical Report
Title
Status
Description
WG
ISO 7185
Information technology – Programming languages – Pascal
Published (1990)
Provides a machine independent definition of the Pascal programming language. Specifies semantics and syntax by specifying requirements for a processor and for a conforming program.[17]
ISO/IEC 1989
Information technology – Programming languages – COBOL
Published (2002)
Improves interoperability, international character set handling, and data validation for the programming language COBOL. Includes a number of technological enhancements, such as, features for object-oriented programming.[18][19]
4
ISO/IEC 1539-1
Information technology – Programming languages – Fortran – Part 1: Base language
Published (2010)
Specifies the form and interpretation of programs expressed in the base Fortran programming language.
Information technology – Programming languages – Ada
Published (2023)
Specifies the form and meaning of programs written in the Ada programming language. Promotes the portability of Ada programs to a variety of computing systems.
Defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite.
ISO/IEC 25436
Information technology -- Eiffel: Analysis, Design and Programming Language
Published (2006)
Provides the full reference for the Eiffel language.
ISO/IEC TR 24772
Information technology -- Programming languages -- Guidance to avoiding vulnerabilities in programming languages through language selection and use
Published (2013)
Specifies software programming language vulnerabilities to be avoided in the development of systems where assured behaviour is required for security, safety, mission-critical and business-critical software.
Information technology -- Programming languages -- Ruby
Published (2012)
Specifies the syntax and semantics of the computer programming language Ruby, and the requirements for conforming Ruby processors, strictly conforming Ruby programs, and conforming Ruby programs.