情報技術 > プログラミング > C言語

目次

編集

入門的な内容

編集
  • 開発環境

比較的高度な内容

編集
  • auto
  • constexpr
  • extern
  • register
  • static
  • thread_local
  • typedef

C言語の歴史

編集
 
ケン・トンプソン(左)とデニス・リッチー(右)

C言語の起源は1969年頃にさかのぼります。当時ベル研究所でUNIXの開発が進められていましたが、システムを効率的に実装するための適切なシステムプログラミング言語がありませんでした。そこで当時ベル研究所に在籍していたケン・トンプソンが、MITで開発されたBCPL言語に影響を受けて、新しい言語「B言語」を作り出しました。

1972年頃になると、デニス・リッチーがB言語をベースに「C言語」の開発を開始します。C言語ではB言語になかったデータ型の概念を導入し、構造体なども追加されました。また、ポインタと配列の関係性に特徴的な設計がなされました。当初はUNIXの開発に利用されましたが、徐々に普及が広がっていきました。

1977-78年頃には、ポインタ規則の厳格化やunsigned型の追加などの改良が行われ、1978年にはブライアン・カーニハンとデニス・リッチーによる「The C Programming Language」という書籍が出版され、C言語の事実上の権威ある解説書となりました。

1980年代に入ると、C言語の標準化の必要性が高まり、1983年にANSIによるC標準化委員会が発足しました。そして1989年に最初のANSI C標準が公開されることとなります。この標準化作業で言語仕様がさらに明確化され、constvolatileといった新しい機能も追加されました。

以降、C言語はUNIXをはじめとするOSでメインのシステムプログラミング言語として幅広く利用されただけでなく、アプリケーション開発でも広く使われるようになりました。また、C++などの後継言語の基盤ともなりました。単純でありながらも力強い表現力を持つC言語は、今日にいたるまで重要な役割を果たしてきました。

参考文献

編集

脚註

編集
  1. ^ <limits.h>は、C99では"Sizes of integer types"、JISCでは、"整数型の大きさ" でしたが、C23では"Characteristics of integer types"となったので、<float.h>の/Characteristics of floating types/浮動小数点型の特性/ にならって "整数型の特性" の訳をあてました。
  2. ^ N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. p. 268, §7.15 Alignment <stdalign.h>. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  3. ^ N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. p. 273, §7.17 Atmics <stdatomic.h>. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  4. ^ N3054 working draft — September 3, 2022 ISO/IEC 9899:2023 (E). ISO/IEC. (2022-09-03). p. 314,§ 7.20 Checked Integer Arithmetic. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3054.pdf. 
  5. ^ N3054 working draft — September 3, 2022 ISO/IEC 9899:2023 (E). ISO/IEC. (2022-09-03). p. 305,§ 7.18 Bit and byte utilities. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3054.pdf. 
  6. ^ N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. p. 361, §7.23 _Noreturn <stdnoreturn.h>. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  7. ^ N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. p. 376, §7.26 Threads <threads.h>. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  8. ^ N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x. ISO/IEC. p. 398, §7.28 Unicode utilities <uchar.h>. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf. 
  9. ^ 当時、現:日本産業標準調査会
  10. ^ 当時、現:日本産業規格
  11. ^ ISO/IEC 9899:1999 (IDT)

外部リンク

編集
 
Wikipedia
ウィキペディアC言語の記事があります。
 
ウィキバーシティ
ウィキバーシティC言語初級の学習教材があります。
  NODES