ISO/IEC JTC 1/SC 22#History

{{Short description|Standardization subcommittee for programming languages}}

ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces is a standardization subcommittee of the Joint Technical Committee ISO/IEC JTC 1 of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) that develops and facilitates standards within the fields of programming languages, their environments and system software interfaces. ISO/IEC JTC 1/SC 22 is also sometimes referred to as the "portability subcommittee". The international secretariat of ISO/IEC JTC 1/SC 22 is the American National Standards Institute (ANSI), located in the United States.{{cite web| url= http://www.iso.org/iso/home/standards_development/list_of_iso_technical_committees/iso_technical_committee.htm?commid=45202| title=ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces| author=ISO/IEC| access-date=2013-07-19}}{{cite report| url=https://jtc1info.org/wp-content/uploads/2024/02/SC-22-Business-Plan-2023.pdf| title=SC 22 Business Plan for ISO/IEC JTC 1/SC 22 for the Period October 2022 to September 2023| date=2023-09-22| access-date=2025-01-21| author=David Keaton| publisher=ISO/IEC JTC 1}}

History

Image:C++ Standards Committee meeting - July 1997 London - Monday study.jpg

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.{{cite report| title=SC 22 Standing Document 2: SC 22 Input to JTC 1/SD2 ("JTC 1 History")| author=Jaeschke, Rex| date=2017-03-12| publisher=ISO| url=https://www.iso.org/cms/render/live/en/sites/isoorg/home.isoDocumentsDownload.do?t=XdEN46vlnmBLtOlmkzWNdY7ciHb5L6alTwDArU7yul6XMXYbxfM2jwBp7HsK_dGS}} 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). 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), and systems software interfaces, such as:{{cite report| title=JTC 1 SC 22 Secretariat Report to the 2010 SC 22 Plenary| author=Peacock, Marisa| date=2010-08-02| url=http://www.open-std.org/JTC1/SC22/open/ISO-IECJTC1-SC22_N4559_JTC_1_SC_22_Secretariat_Report_to_the.pdf| access-date=2013-07-22}}

  • 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.

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.

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:{{cite news| url=http://www.open-std.org/JTC1/SC22/docs/sc22-iso-bulletin.pdf| title=Briefing – Information Technology: ISO/IEC JTC 1 Subcommittee 22, Programming Languages, their Environments, and System Software Interfaces| date=February 2001| access-date=2013-07-22| author=Hill, John L.| journal=ISO Bulletin |volume=2}}

  • 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. 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:{{cite web| title=ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces| page=Structure| url=https://www.iso.org/committee/45202.html#structure| access-date=2025-01-21| website=ISO}}

class="wikitable sortable"

! data-sort-type="number" | Working Group

! Working Area

! Status

data-sort-value="01"| ISO/IEC JTC 1/SC 22/WG 1PLIP (Programming Languages for Industrial Processes)Disbanded
data-sort-value="02"| ISO/IEC JTC 1/SC 22/WG 2PascalDisbanded
data-sort-value="03"| ISO/IEC JTC 1/SC 22/WG 3APLDisbanded
data-sort-value="04"| ISO/IEC JTC 1/SC 22/WG 4COBOLActive
data-sort-value="05"| ISO/IEC JTC 1/SC 22/WG 5FortranActive
data-sort-value="06"| ISO/IEC JTC 1/SC 22/WG 6ALGOLDisbanded
data-sort-value="07"| ISO/IEC JTC 1/SC 22/WG 7PL/IDisbanded
data-sort-value="08"| ISO/IEC JTC 1/SC 22/WG 8BASICDisbanded
data-sort-value="09"| ISO/IEC JTC 1/SC 22/WG 9AdaActive
data-sort-value="10"| ISO/IEC JTC 1/SC 22/WG 10GuidelinesDisbanded
data-sort-value="11"| ISO/IEC JTC 1/SC 22/WG 11Binding TechniquesDisbanded
data-sort-value="12"| ISO/IEC JTC 1/SC 22/WG 12ConformityDisbanded
data-sort-value="13"| ISO/IEC JTC 1/SC 22/WG 13Modula-2Disbanded
data-sort-value="14"| ISO/IEC JTC 1/SC 22/WG 14CActive
data-sort-value="15"| ISO/IEC JTC 1/SC 22/WG 15POSIXDisbanded
data-sort-value="16"| ISO/IEC JTC 1/SC 22/WG 16ISLispDisbanded
data-sort-value="17"| ISO/IEC JTC 1/SC 22/WG 17PrologActive
data-sort-value="18"| ISO/IEC JTC 1/SC 22/WG 18FIMS (Form Interface Management System)Disbanded
data-sort-value="19"| ISO/IEC JTC 1/SC 22/WG 19Formal Specification LanguagesDisbanded
data-sort-value="20"| ISO/IEC JTC 1/SC 22/WG 20InternationalizationDisbanded
data-sort-value="21"| ISO/IEC JTC 1/SC 22/WG 21C++Active
data-sort-value="22"| ISO/IEC JTC 1/SC 22/WG 22PCTE (Portable Common Tool Environment)Disbanded
data-sort-value="23"| ISO/IEC JTC 1/SC 22/WG 23Programming Language VulnerabilitiesActive
data-sort-value="24"| ISO/IEC JTC 1/SC 22/WG 24{{cite web |title=ISO/IEC JTC 1/SC 22/SD2 |url=https://jtc1info.org/sd-2-history/jtc1-subcommittees/sc-22/ |website=ISO/IEC JTC 1 |access-date=26 March 2025 |date=August 2024}}LinuxActive

Collaborations

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:{{cite report| title=Twenty Sixth Plenary Meeting of ISO/IEC JTC 1/SC 22| date=2013-05-23| author=Peacock, Marisa| location=Tokyo, Japan| type=Meeting Agenda}}{{cite web|title=ISO/IEC JTC 1/SC 22 Liaisons|url=https://www.iso.org/committee/45202.html#liaisons|website=ISO|access-date=2025-01-21}}

Organizations in liaison to ISO/IEC JTC 1/SC 22 that are external to ISO are:

Member countries

Countries pay a fee to ISO to be members of subcommittees.{{cite manual| url=http://www.iso.org/iso/iso_membership_manual_2012.pdf| pages=17–18| chapter=III. What Help Can I Get from the ISO Central Secretariat?| title=ISO Membership Manual| author=ISO| date=June 2012| access-date=2013-07-12| publisher=ISO}}

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.{{cite web| url=https://www.iso.org/committee/45202.html?view=participation| title= ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces| access-date=2020-01-23| author=ISO| publisher=ISO}}

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, Thailand and Turkey.{{cite web|title=ISO Technical Committee Participation|url=https://www.iso.org/committee/45202.html?view=participation|website=ISO|access-date=2020-01-23}}

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:{{cite web| url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_tc_browse.htm?commid=45202&published=on&development=on| title=JTC 1/SC 22 - Programming languages, their environments and system software interfaces| author=ISO| access-date=2012-07-22}}{{cite report| title=SC 22 Programme of Work| author=Peacock, Marisa| date=2011-08-10}}{{cite web|title=ISO/IEC JTC 1/SC 22|url=http://www.iso.org/iso/home/standards_development/list_of_iso_technical_committees/iso_technical_committee.htm?commid=45202|website=ISO|access-date=2015-07-14}}

class="wikitable sortable" width="100%"

! width="14%" | ISO/IEC Standard/Technical Report

! data-sort-type="text" width="29%" | Title

! width="6%" | Status

! width="49%" | Description

! data-sort-type="number" width= "2%" | WG

ISO 7185data-sort-value="Pascal"| Information technology – Programming languages – PascalPublished (1991)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.{{cite tech report| title=Pascal ISO 7185:1990| year=1991| url=http://www.moorecad.com/standardpascal/iso7185.pdf| access-date=2013-07-25| author=ISO/IEC| publisher=ISO/IEC}}data-sort-value="25"|
ISO/IEC 1989data-sort-value="COBOL"| Information technology – Programming languages – COBOLPublished (2023)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.data-sort-value="04"| 4
ISO/IEC 1539-1data-sort-value="Fortran"| Information technology – Programming languages – Fortran – Part 1: Base languagePublished (2010)Specifies the form and interpretation of programs expressed in the base Fortran programming language.data-sort-value="05"| 5
ISO/IEC 8652data-sort-value="Ada"| Information technology – Programming languages – AdaPublished (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.data-sort-value="09"| 9
ISO/IEC 9899data-sort-value="C"| Information technology – Programming languages – CPublished (2024)Specifies the form and interpretation of programs written in the C programming languagedata-sort-value="14"| 14
ISO/IEC/IEEE 9945data-sort-value="POSIX"| Information technology – Portable Operating System Interface (POSIX) Base Specifications, Issue 7Published (2009)Defines a standard operating system interface and environment for support of applications portability at the source code level.data-sort-value="15"| 15
ISO/IEC 13211-1data-sort-value="Prolog"| Information technology – Programming languages – Prolog – Part 1: General corePublished (1995)Promotes the portability and applicability of Prolog data and text for a variety of data processing systems.data-sort-value="17"| 17
ISO/IEC 14882data-sort-value="C++"| Information technology – Programming languages – C++Published (2024)Specifies requirements for the implementation of the C++ programming language.data-sort-value="21"| 21
ISO/IEC 23270data-sort-value="C#"| Information technology – Programming languages – C#Published (2006)Specifies the form and interpretation of programs written in the C# programming languagedata-sort-value="22"|
ISO/IEC 16262data-sort-value="ECMAScript"| Information technology – Programming languages, their environments and system software interfaces – ECMAScript language specificationPublished (2011)Defines the scripting language for ECMAScript.data-sort-value="23"|
ISO/IEC 23360-1data-sort-value="Linux Standard Base"| Linux Standard Base (LSB) core specification 3.1 – Part 1: Generic specificationPublished (2006)Defines a system interface for compiled applications and minimal environment of installation scripts.data-sort-value="24"|
ISO/IEC 23271data-sort-value="Common Language Infrastructure"| Information technology -- Common Language Infrastructure (CLI)Published (2012)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.data-sort-value="25"|
ISO/IEC 25436data-sort-value="Eiffel"| Information technology -- Eiffel: Analysis, Design and Programming LanguagePublished (2006)Provides the full reference for the Eiffel language.data-sort-value="26"|
ISO/IEC TR 24772data-sort-value="Guidance to avoiding vulnerabilities"| Information technology -- Programming languages -- Guidance to avoiding vulnerabilities in programming languages through language selection and usePublished (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.data-sort-value="27"|
ISO/IEC 30170data-sort-value="Ruby"| Information technology -- Programming languages -- RubyPublished (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.data-sort-value="28"|

See also

References

{{Reflist|2}}