Namespaces
Variants

History of C

From cppreference.net

目次

初期のC

  • 1969年: B言語が作成される。BCPLを基にしており、Unixのシステムプログラミング言語としてPDP-7アセンブラを置き換えるために開発された
  • 追加された演算子 ++ , -- 、複合代入演算子、BCPLと同様に型なし言語のまま維持された
  • 1971: NB(「新しいB」の意)は、B言語をPDP-11に移植する際に作成されました
  • 型 ( int , char 、配列とポインタ)、配列からポインタへの変換、機械語へのコンパイル
  • 1972年: 言語名がCに変更
  • struct 、演算子 && および || 、プリプロセッサ、ポータブルI/O
  • 1973年: UnixがC言語で書き直される
  • unsigned , long , union , 列挙型, 強化された型安全性
  • 1978: The Cプログラミング言語、第1版

Standard C

  • 1983年: ANSIがX3J11委員会を設立
  • 1988年: 『The C Programming Language』第2版
  • 1989年: C89 , ANSI C規格が発行
  1. 既存の慣行を成文化
  2. 新機能: volatile , enum , signed , void , ロケール
  3. C++からの導入: const , 関数プロトタイプ
  • 1990年: C90 , ANSI C規格がISO/IEC 9899:1990として承認
  • 1994年: 技術的正誤表1 (ISO/IEC 9899:1990/Cor.1:1994)
  1. 大幅に拡張されたワイド文字およびマルチバイト文字のサポート ( <wctype.h> , <wchar.h> 、ストリームI/Oへの追加および変更など)
  2. ダイグラフ, <iso646.h> ,
  • 1996: 技術的正誤表 2 (ISO/IEC 9899:1990/Cor.2:1996)
  • 1999: C99 (ISO/IEC 9899:1999)
  1. 新機能: bool , long long , <stdint.h> , <inttypes.h> , restrict , 複合リテラル, 可変長配列, 柔軟な配列メンバ, 指示付き初期化子, <fenv.h> , 可変個引数マクロ, 複素数, __func__ , 16進浮動小数点形式 ( % a ), lconv における通貨書式, isblank , ナロー文字列リテラルとワイド文字列リテラルの連結, 列挙型の末尾のカンマ, 関数形式マクロの空引数, STDC_ * プラグマ, va_copy , tmpnam のヌル返却, setvbuf におけるヌルポインタ, hh および ll 長さ指定子 ( printf , snprintf ), _Exit , <tgmath.h> , POSIX形式の strftime 指定子
  2. C++からの導入: inline , 宣言とコードの混合, forループの初期化節における宣言, // コメント, ソースコードにおけるユニバーサル文字名
  3. 暗黙的関数と暗黙の int の削除
  • 2001: 技術的正誤表 1 (ISO/IEC 9899:1999/Cor.1:2001)
  • 2004年:テクニカル・コリゲンダム2 (ISO/IEC 9899:1999/Cor.2:2004)
  • 2004年:Unicode TR (ISO/IEC TR 19769:2004) ( ISOストア ) ( N1040 2003年11月7日草案)
  • 2007年:テクニカル・コリゲンダム3 (ISO/IEC 9899:1999/Cor.3:2007) ( N1256 2007年9月7日草案)
  1. スレッド対応メモリモデル、 <stdatomic.h> <threads.h> 、型総称関数、 alignas / alignof noreturn static_assert 、解析可能性拡張、複素数型と虚数型の拡張、無名構造体と無名共用体、排他的ファイルオープンモード、 quick_exit
  2. 削除された gets
  3. Bounds-checking interfaces TRより:境界チェックインターフェース、
  4. Unicode TRより: char16_t char32_t 、および <uchar.h>
  • 2012: 技術的正誤表 1 (ISO/IEC 9899:2011/Cor 1:2012) ( ISOストア )
  • 2013: セキュアコーディング規則 TS (ISO/IEC TS 17961:2013) ( ISOストア ) ( N1718 2013年5月30日)
  • 2014: FP TS パート1: バイナリ浮動小数点演算 (ISO/IEC TS 18661-1:2014) ( ISOストア ) ( N1778 2013年草案)
  1. C11(主に附属書F)に対して、IEC 60559:2011の全ての基本要件と一部の推奨事項を網羅する変更を提供します(C11はIEC 60559:1989に基づいて構築されていました)
  • 2015: FP TS part 2: Decimal floating-point arithmetic (ISO/IEC TS 18661-2:2015) ( ISOストア ) ( N1912 2015ドラフト)
  1. C11に対する変更を提供し、IEC 60559:2011の10進浮動小数点演算に関する全要件と基本的な推奨事項をサポートします。これはISO/IEC TR 24732:2009に取って代わります。
  • 2015: FP TS パート3: 交換および拡張型 (ISO/IEC TS 18661-3:2015) ( ISOストア ) ( N1945 2015ドラフト)
  1. IEC 60559:2011の拡張浮動小数点形式および交換形式(算術形式と非算術形式の両方)に関する勧告をサポートするためのC11への変更を提供します。
  1. IEC 60559:2011で推奨されるすべての数学演算(π単位での三角関数、逆平方根、複利計算など)をサポートするためのC11への変更を提供します。
  • 2016: FP TS パート5: 補助的属性 (ISO/IEC TS 18661-5:2016) ( ISOストア ) ( N2004 2016年ドラフト)
  1. IEC 60559:2011で推奨されるすべての補助的属性(評価モデル、例外処理、再現性など)をサポートするためのC11への変更を提供します
主な記事: C17
C17で修正された欠陥報告 (54件の欠陥)
  • 2023 C23 (ISO/IEC 9899:2024)。C23はC標準の現行リビジョンです。
主な記事: C23
C23で修正された不具合報告 (?件の不具合)

将来の開発

  • Parallelism TS (草案 N2017 2016-03-10)
  • Transactional Memory TS (草案 N1961 2015-09-23)
  • C (最新草案 n3550 2025-05-04)
  1. DRステータスが付与されなかった課題のリスト: ( N2556 2020-08-02)
主記事: C29 ?
次期主要C言語標準改訂

関連項目

C++ documentation for History of C++
日本語訳:
C++ documentation for History of C++
指示に従い、以下の点を厳守しました: - HTMLタグと属性は翻訳せず保持 - ` `, `
`, ``タグ内のテキストは翻訳対象外(この例では該当なし)
- C++固有の用語("C++ documentation", "History of C++")は翻訳せず保持
- プロフェッショナルで正確な翻訳を実施

外部リンク

1. C言語の開発 by Dennis M. Ritchie
2. C99標準の理論的根拠