C言語
C言語(シーげんご)は、プログラミング言語の一つ。「ハードウェアべったり」の言語なので、思想に忠実に記述するとシステムが大規模化したときに全体像の見通しがきかなくなる傾向がある。それを改善しようという動きもあったが、けっきょく「アプリケーション・プログラムの開発には向かない」ということで、俗にいう「縁の下の力持ち」の役割を果たしている。
概要[編集]
手続き型言語である。名称は「BCPL⇒B」の後継であるから「Bの次はC」という単純な理由による。
アプリケーションの開発環境上の言語では封じられることが多い、ポインタによるメモリー操作が可能である。「左の値と右の値」という概念があり、たとえば「X=X+1」ではXは「Xというシンボルによって示された記憶領域の先頭アドレス」であり、「X+1」は「Xの値とリテラル値である1の和」と解釈し、「X=X+1」は「Xというシンボルによって示された記憶領域に、値としてのX+1を格納せよ」という意味になる。
1972年に登場した。標準化などを経て、現在のC言語は当時のものとはそれなりに使いやすく変化している[1]。
一時期では、性能や処理系などの問題から、アプリケーションの開発はほとんどがCで行われていた。
現在は表立ってアプリケーション開発に使われることはほとんどないが、数値計算や画像処理などの分野ではしばしば使われ、ゲームソフトなどのリアルタイム系制禦システムの開発に関しては、まだまだ現役である。
例えば、Unix系OSに使われていたこともあり、OSSのOS開発に使われることが多い。LinuxもCで開発されている。
Unix系OS上で開発されることが多い言語処理系の開発にも使われることが多い[2]。
標準C[編集]
標準CとはC言語の標準規格の総称である。米国規格協会 (ANSI) および国際標準化機構 (ISO) が発行したC言語の標準規格があり、それぞれ"ANSI C"、"ISO C"などと呼ばれる。
ANSI Cの1989年版は"C89"、1990年版は"C90"と表記することが多い。
特徴[編集]
- BCPLやBと異なり、変数に「型」がある。
- 演算子として“++”と“--”がある。これはスタック操作における「プレ・インクリメント」「ポスト・デクリメント」に対応したものであり、sp++・--spなどと使われた。すなわち、本来はポインタに対してsizeofだけ増減することに対応しており、スタックのインデックスである整数に適用するのは二次的な用法である。
現在では“+=”あるいは“-=”で置き換えるのが行儀のよいコードとされる。
参考文献[編集]
- ブライアン・W・カーニハン、デニス・M・リッチー著/石田晴久訳『プログラミング言語C ー 第二版 ANSI 規格準拠』(共立出版、1998)。「K&R」として、「Cプログラマの聖典」とされている。
- はじめてのC