C言語とは
C言語の特徴
C言語は、1970年代に、アメリカのベル研究所で開発された
プログラミング言語である。OSはアセンブリ言語で書くのが常識だった
時代にUNIXはC言語で記述され、その実力が注目された。
特徴は、
- 高級言語の書きやすさとアセンブリ言語のシステムに密着した記述力を
併せ持つ。特にポインタの使いやすさにより、OSから高度な
アプリケーションまで、多岐に渡って用いられる。
- コンパイラ言語であり、高速なプログラムが書ける。
- 現在においても、OS、アプリケーションの大半がC言語で記述されており、
世の中で最も多く用いられている言語である。
- 使いやすい標準ライブラリを持ち、多くのプラットホーム間で
移植性のあるプログラムが書ける。ただし、文字ベースのライブラリ
のみであり、GUIやネットワークプログラミングにおいては
そうとは言えない。
- 簡潔を旨とし、プログラムのタイプ量が少ない。
C言語の規格
K&R
C言語は最初に登場したときは規格書のようなものが無く、
仕様は曖昧だった。そのころのC言語の仕様は、
B. W. Kernighan (カーニハン) と D. M. Ritchie (リッチー) に
よる「The C Programming Language」という本によって
事実上規定されており、このころのC言語の書き方をK&Rスタイル
と呼ぶことがある。今では古い書き方である。
ANSI C, ISO C
その後、C言語の文法は委員会が設置されて検討され、
1989年にANSI (American National Standards Institute)で、
ANSI X3.159-1989という規格として制定された。
このとき文法は大きく変更され、特に関数の宣言の仕方が
変わった(互換性のため古い書き方も可能になっている)。
ちなみにANSIは日本で言うJISのようなもの。
この規格はのちに、ISO (International Organization For Standardization)
でISO/IEC 9899:1990として採用された。
C99
ISOで1999年に定められた規格。正式名称は ISO/IEC 9899:1999。
変数の宣言が先頭でなくてもよくなったり、//コメントが使えるようになったり、
様々な新機能が導入された。多くのCコンパイラはC99に準拠するようになったが、
新機能はまだそれほど活用されていない(気がする)。
C言語の処理系(コンパイラ)
Windowsでは、MicrosoftのVisual C++が広く使われている。
C++という名前だが、CとC++両方が使える。
UNIXでは、R. Stallman (ストールマン)の
GNUプロジェクト
で作られたGNU cc (gcc)が広く使われている。
これもCとC++両方に対応した処理系である。
また、最近ではappleが中心になって開発したclangもよく使われるように
なってきた。
本講義では、gccを用いる。
C言語とは