Recent from talks
Nothing was collected or created yet.
ISO/IEC JTC 1/SC 22
View on WikipediaISO/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.[1][2]
History
[edit]
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
[edit]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.[2]
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.[3]
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:[5]
- 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
[edit]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:[6]
| Working Group | Working Area | Status |
|---|---|---|
| ISO/IEC JTC 1/SC 22/WG 1 | PLIP (Programming Languages for Industrial Processes) | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 2 | Pascal | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 3 | APL | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 4 | COBOL | Active |
| ISO/IEC JTC 1/SC 22/WG 5 | Fortran | Active |
| ISO/IEC JTC 1/SC 22/WG 6 | ALGOL | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 7 | PL/I | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 8 | BASIC | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 9 | Ada | Active |
| ISO/IEC JTC 1/SC 22/WG 10 | Guidelines | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 11 | Binding Techniques | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 12 | Conformity | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 13 | Modula-2 | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 14 | C | Active |
| ISO/IEC JTC 1/SC 22/WG 15 | POSIX | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 16 | ISLisp | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 17 | Prolog | Active |
| ISO/IEC JTC 1/SC 22/WG 18 | FIMS (Form Interface Management System) | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 19 | Formal Specification Languages | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 20 | Internationalization | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 21 | C++ | Active |
| ISO/IEC JTC 1/SC 22/WG 22 | PCTE (Portable Common Tool Environment) | Disbanded |
| ISO/IEC JTC 1/SC 22/WG 23 | Programming Language Vulnerabilities | Active |
| ISO/IEC JTC 1/SC 22/WG 24[7] | Linux | Active |
Collaborations
[edit]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:[8][9]
- ISO/IEC JTC 1/SC 2, Coded character sets
- ISO/IEC JTC 1/SC 7, Software and systems engineering
- ISO/IEC JTC 1/SC 27, IT Security techniques
- ISO/TC 37, Terminology and other language and content resources
- ISO/TC 215, Health informatics
Organizations in liaison to ISO/IEC JTC 1/SC 22 that are external to ISO are:
- Ecma International
- Linux Foundation
- Association for Computing Machinery Special Interest Group on Ada (ACM SIGAda)
- Ada-Europe
- MISRA
Member countries
[edit]Countries pay a fee to ISO to be members of subcommittees.[10]
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.[11]
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.[12]
Published standards and technical reports
[edit]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:[13][14][15]
| ISO/IEC Standard/Technical Report | Title | Status | Description | WG |
|---|---|---|---|---|
| ISO 7185 | Information technology – Programming languages – Pascal | Published (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.[16] | |
| ISO/IEC 1989 | Information technology – Programming languages – COBOL | Published (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. | 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. | 5 |
| ISO/IEC 8652 | 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. | 9 |
| ISO/IEC 9899 | Information technology – Programming languages – C | Published (2024) | Specifies the form and interpretation of programs written in the C programming language | 14 |
| ISO/IEC/IEEE 9945 | Information technology – Portable Operating System Interface (POSIX) Base Specifications, Issue 7 | Published (2009) | Defines a standard operating system interface and environment for support of applications portability at the source code level. | 15 |
| ISO/IEC 13211-1 | Information technology – Programming languages – Prolog – Part 1: General core | Published (1995) | Promotes the portability and applicability of Prolog data and text for a variety of data processing systems. | 17 |
| ISO/IEC 14882 | Information technology – Programming languages – C++ | Published (2024) | Specifies requirements for the implementation of the C++ programming language. | 21 |
| ISO/IEC 23270 | Information technology – Programming languages – C# | Published (2006) | Specifies the form and interpretation of programs written in the C# programming language | |
| ISO/IEC 16262 | Information technology – Programming languages, their environments and system software interfaces – ECMAScript language specification | Published (2011) | Defines the scripting language for ECMAScript. | |
| ISO/IEC 23360-1 | Linux Standard Base (LSB) core specification 3.1 – Part 1: Generic specification | Published (2006) | Defines a system interface for compiled applications and minimal environment of installation scripts. | |
| ISO/IEC 23271 | 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. | |
| 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. | |
| ISO/IEC 30170 | 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. |
See also
[edit]References
[edit]- ^ ISO/IEC. "ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces". Retrieved 2013-07-19.
- ^ a b c David Keaton (2023-09-22). SC 22 Business Plan for ISO/IEC JTC 1/SC 22 for the Period October 2022 to September 2023 (PDF) (Report). ISO/IEC JTC 1. Retrieved 2025-01-21.
- ^ a b c d Jaeschke, Rex (2017-03-12). SC 22 Standing Document 2: SC 22 Input to JTC 1/SD2 ("JTC 1 History") (Report). ISO.
- ^ Peacock, Marisa (2010-08-02). JTC 1 SC 22 Secretariat Report to the 2010 SC 22 Plenary (PDF) (Report). Retrieved 2013-07-22.
- ^ Hill, John L. (February 2001). "Briefing – Information Technology: ISO/IEC JTC 1 Subcommittee 22, Programming Languages, their Environments, and System Software Interfaces" (PDF). ISO Bulletin. Vol. 2. Retrieved 2013-07-22.
- ^ "ISO/IEC JTC 1/SC 22 Programming languages, their environments and system software interfaces". ISO. p. Structure. Retrieved 2025-01-21.
- ^ "ISO/IEC JTC 1/SC 22/SD2". ISO/IEC JTC 1. August 2024. Retrieved 26 March 2025.
- ^ Peacock, Marisa (2013-05-23). Twenty Sixth Plenary Meeting of ISO/IEC JTC 1/SC 22 (Meeting Agenda). Tokyo, Japan.
- ^ "ISO/IEC JTC 1/SC 22 Liaisons". ISO. Retrieved 2025-01-21.
- ^ ISO (June 2012). "III. What Help Can I Get from the ISO Central Secretariat?". ISO Membership Manual (PDF). ISO. pp. 17–18. Retrieved 2013-07-12.
- ^ ISO. "ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces". ISO. Retrieved 2020-01-23.
- ^ "ISO Technical Committee Participation". ISO. Retrieved 2020-01-23.
- ^ ISO. "JTC 1/SC 22 - Programming languages, their environments and system software interfaces". Retrieved 2012-07-22.
- ^ Peacock, Marisa (2011-08-10). SC 22 Programme of Work (Report).
- ^ "ISO/IEC JTC 1/SC 22". ISO. Retrieved 2015-07-14.
- ^ ISO/IEC (1991). Pascal ISO 7185:1990 (PDF) (Technical report). ISO/IEC. Retrieved 2013-07-25.
External links
[edit]ISO/IEC JTC 1/SC 22
View on GrokipediaBackground
History
ISO/IEC JTC 1/SC 22 was established in 1985 as a subcommittee succeeding ISO/TC 97/SC 5 "Information Processing Systems — Programming Languages," inheriting several working groups focused on legacy programming languages, including WG 2 for Pascal (originally TC 97/SC 5/WG 4), WG 4 for COBOL, and WG 5 for Fortran.[8][9][2] This transition occurred amid broader restructuring in international standards for information technology, with SC 22 initially comprising around 24 working groups addressing various languages and interfaces from the era.[2] In 1987, following the formation of the joint ISO/IEC JTC 1 committee, SC 22 was formally recognized and integrated under its structure, solidifying its role in standardizing programming languages, environments, and system software interfaces.[10] During the 1990s, SC 22 expanded to encompass emerging languages, notably establishing WG 14 for the C programming language in alignment with its first international standard (ISO/IEC 9899:1990) and WG 21 for C++ standardization starting around 1990, reflecting the growing need for portable, object-oriented programming support.[11] The subcommittee also began adopting digital communication tools, such as email in 1991 and online document distribution by 1996, enhancing global collaboration.[2] Into the 2000s, SC 22 consolidated by disbanding obsolete groups, including WG 8 for BASIC (completed its work by early 2000s) and WG 10 for guidelines (disbanded in 1986 after its final report, with further legacy cleanup).[12][13] Additional disbandments followed, such as WG 3 for APL in 2006, reducing the number of active working groups from the original 24 in the 1980s to 8 today amid technological shifts toward fewer, more dominant languages.[2] In the 2010s, SC 22 shifted emphasis to modern languages, enhanced portability, and security, with disbandments like WG 11 for binding techniques and WG 16 for ISLisp in 2011, allowing focus on high-impact areas such as vulnerability guidance (WG 23).[2] Recent milestones include the publication of ISO/IEC 9899:2024 (C23) by WG 14 and ISO/IEC 14882:2024 (C++23) by WG 21 in 2024, advancing features for concurrency, attributes, and bit-precise integers.[11][14] At the September 2025 virtual plenary, SC 22 established Ad Hoc Group 1 (AhG 1) to revise Standing Document SD 1 on merit-based convenor appointments, with recommendations due by the 2026 plenary.[15]Scope and Focus Areas
ISO/IEC JTC 1/SC 22 serves as the international standardization subcommittee responsible for programming languages, their environments, and system software interfaces, with a primary emphasis on ensuring portability across diverse computing systems.[1] Often referred to as the "portability subcommittee," it coordinates efforts to define precise syntax and semantics for widely used programming languages, including C, C++, Ada, COBOL, and Fortran, thereby facilitating consistent implementation and usage globally.[1] This work extends to language environments, encompassing runtime systems and standard libraries that support execution and integration, as well as system software interfaces such as POSIX and other open systems portability standards that enable interoperability between operating systems and applications.[1] The core mission of SC 22 is to foster international consensus on language specifications and interfaces, ultimately enhancing software portability, developer productivity, and overall system interoperability in an increasingly heterogeneous computing landscape.[2] By establishing rigorous, agreed-upon standards, SC 22 reduces implementation variances that could hinder software reuse and deployment across platforms, promoting efficiency in software development and maintenance.[2] This objective supports broader goals in information technology by minimizing fragmentation in programming paradigms and enabling seamless collaboration among developers and vendors worldwide. In addressing contemporary challenges, SC 22 incorporates security considerations into language design and implementation, particularly through initiatives focused on identifying and mitigating vulnerabilities independent of specific languages.[16] For instance, Working Group 23 (WG 23) develops technical reports providing guidance on avoiding common security flaws, such as those arising from unchecked data conversions or memory management issues, applicable to languages like C, Java, and Python.[17] reflecting SC 22's commitment to safer programming practices without prescribing exhaustive lists of defects.[18] Additionally, SC 22 promotes guidelines for the thoughtful evolution of programming languages, balancing innovation with backward compatibility to sustain long-term ecosystem stability.[1]Organization
Structure
ISO/IEC JTC 1/SC 22 operates as a subcommittee of the Joint Technical Committee 1 (JTC 1) for information technology, focusing on the standardization of programming languages, their environments, and system software interfaces.[1] It is administered by a secretariat hosted by ANSI in the United States, with decision-making authority vested in its plenary sessions, which convene periodically—typically several times per year—to approve projects, review progress, and manage organizational matters.[1][2] As of 2025, the subcommittee maintains eight active working groups (WGs), each dedicated to specific areas within its scope. The active working groups are as follows:| Working Group | Focus Area |
|---|---|
| WG 4 | COBOL standardization and maintenance[2] |
| WG 5 | Fortran standardization and revisions[2][19] |
| WG 9 | Ada programming language standardization[2] |
| WG 14 | C programming language standardization[2] |
| WG 17 | Prolog standardization[2] |
| WG 21 | C++ standardization[2] |
| WG 23 | Vulnerabilities in programming languages[2] |
| WG 24 | Linux Standard Base[2] |
