C言語のスタンダード「ANSI C」進化したC言語「ISO C99」

C言語の誕生は1972年頃ですから、40年近く経っている計算になります。当初はUNIXシステムの記述用言語として開発されたもので、その当時のコンピュータではアセンブラ言語の代替として記述しやすく、マシンコードに近いコードを生成できるといったメリットがありました。今でも細かく規格化されてはいるものの当時と同じプログラムが実行できるとは、その先進性には驚かされます。

C言語の進歩

C言語はB.W.カーニハンとD.M.リッチーの「プログラミング言語C(日本語版は石田晴久訳で1981年7月、共立出版刊⁠⁠」が原典と言われていますが、その後、1989年にANSI規格が制定され、以後この規格が長期に渡って標準として使われてきました。

その後、1990年にISO(国際標準化機構)がANSI CをISO C90規格として制定し、1995年に小規模な改訂が行われてISO C95規格になり、1999年に言語仕様の改定や複素数型、複素数関数の導入など)をしたISO C99規格になって現在に至ります。

ここまでは言語規格の変遷ですが、実際の処理系でもさまざまな取り組みがなされています。たとえばGCC(GNU C Compiler)はISO C99に対応していますが、独自に拡張している部分がありますし、MicrosoftのVisual C++では、WindowsのGUI(Graphical User Interface)としてグラフィカルなインターフェース環境が利用できます。またC言語にオブジェクティブ指向の要素を加えたC++、Objective-Cなど、独自に進歩したものも少なくありません。

進歩した今のC言語を学ぶために

シンプルなはずのC言語が、いろいろな見直しや規格化されていくにしたがって、一筋縄ではいかない部分が出てきています。また、数学でお使いになる方は、複素数をどう扱うのか興味もあると思います。

そのために役に立つのがリファレンスです。1から学習するのではなく、引きたい機能を簡便に読めるように、また昔おぼえたC言語の現状を知るためにもC言語標準文法ポケットリファレンスC言語標準関数ポケットリファレンスがお役に立つことでしょう。