LLMpediaThe first transparent, open encyclopedia generated by LLMs

ISO/IEC 9899

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Clang Hop 5
Expansion Funnel Raw 1 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted1
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
ISO/IEC 9899
TitleISO/IEC 9899
StatusPublished
First published1990
Latest revision2018
Governing bodyISO, IEC, JTC 1, SC 22, WG14
DomainProgramming languages

ISO/IEC 9899 is the international standard specifying the C programming language, providing normative syntax, semantics, and library descriptions for implementations used in systems and applications. The standard is maintained by international bodies and has influenced compiler development, operating systems, embedded devices, and software tooling across industry and academia. It serves as a reference for language designers, implementers, and standards bodies worldwide.

Overview

ISO/IEC 9899 defines the core and optional features of the C language, including lexical grammar, type system, control flow, storage duration, and the standard library. Major sections cover lexical elements, declarations, expressions, statements, translation phases, and the standard headers that specify interfaces for I/O, memory management, string handling, and mathematical functions. The standard interacts with work from international organizations and technical committees to align with portability goals used by vendors, platform developers, and academic projects.

History and standardization

The standard originated from language development led by figures and institutions responsible for the early C language and its evolution into a formal specification. Early language artifacts and committees that influenced the standard include historical drafts and contributions from research laboratories, academic departments, and corporate groups. Standardization progressed through national bodies and international consortia, with participation by experts from major technology companies, research institutes, and standards committees. The process incorporated proposals, defect reports, and corrigenda evaluated by working groups and plenary meetings to produce successive editions.

Language specifications and scope

The specification prescribes lexical conventions such as tokens and preprocessing, a type system including integer and floating types, and rules for expressions, conversions, and undefined behavior. It enumerates translation limits, diagnostic requirements, and optional implementation-defined behavior that compilers may document. The standard library defines types and functions for I/O, file manipulation, memory allocation, mathematical operations, time and date, character classification, and locale support. It also specifies headers and macros that implementations must provide or may extend.

Revisions and editions

The standard has undergone multiple editions, each addressing language evolution, feature clarifications, and library extensions. Revisions reconciled back-compatibility with prior language dialects while resolving ambiguities and responding to emerging programming practices. Working groups issued technical corrigenda and defect reports between major editions to maintain interoperability. Each edition is referenced by developers, compiler vendors, and certification programs when implementing new language features or when deprecating legacy behaviors.

Implementations and compiler conformance

Commercial and open-source compiler projects implement the standard to varying degrees, providing conformance modes, extensions, and optimization features. Vendors provide conformance testing suites and validation tools that exercise language constructs and library functions against the normative text. Toolchains that target different processor architectures and operating environments adapt the standard to platform-specific ABIs, calling conventions, and headers. Compiler front ends, linkers, and runtime libraries collaborate to satisfy diagnostic requirements and to document implementation-defined behavior.

Impact and legacy

The standard has had broad influence on software engineering, system software, and language design, shaping ecosystems of compilers, debuggers, and build systems. Its specification model has been referenced by other language standards and by educational curricula in universities and training programs. The standard enabled portability of source code across hardware and operating platforms, informing industry practices and long-term maintenance of large codebases. Its legacy continues through ongoing maintenance by international committees, contributions from vendors and researchers, and adoption across embedded systems, operating systems, scientific computing, and commercial software projects.

Category:Programming languages standards