涼の成長記録

自らの人生に主導権を持つべく、独立を目指して2014年3月31日を持ってITエンジニアを退職。そんな23歳♂の成長記録。

C言語の歴史が分からない

C言語の歴史について学習しているのですが、どこも細かなニュアンスが違って、何が正解なのか判断つきません。まあ、歴史なので正解は1つだと思うのですが、過去である以上真実はよく分かりません。嘘は言わないように当たり障り無く触れていくべきでしょうか。とりあえず、以下のような感じでまとめてみました。

K&R

何故”C”言語なのかというと、元々B言語というプログラミング言語がありました。これは、1969年頃にベル研究所のケン・トンプソン(Ken Thompson)によって、デニス・リッチー(Dennis Ritchie)監修の元、開発された言語です。現在は、ほぼ絶滅しています。なぜなら、B言語を改良して作られたC言語という新しいプログラミング言語が誕生したためです。


ケン・トンプソンとデニス・リッチーは、UNIXの開発を行っていましたが、当時アセンブリ言語で書かれていました。そこで、高水準なプログラミング言語で書き直すことを目的として、デニス・リッチーが1972頃にC言語を開発しました。C言語は、UNIXだけでなく、UNIX上で動作する多くのアプリケーションにも利用されました。そうして、C言語UNIXの世界で急速に広まり、次第にパソコンやスーパーコンピューターに至るまで、一気に普及していきました。


デニス・リッチーは、ブライアン・カーニハン(Brian Wilson Kernighan)と共に、”The C Programming Language”というC言語の解説書を作成します。C言語の設計者が自ら著したこの本は、C言語のバイブルとして多くの人々に読まれます。今も、著者のイニシャルに由来した”K&R”という相性で親しまれています。

C89, C90

しかし、C言語が普及するにつれて、様々なCコンパイラーが開発され、各コンパイラー間で微妙な仕様の差異が問題になってくるようになりました。そうすると、C言語で書かれたプログラムがコンパイラーによっては期待の動作を行わなかったり等の問題が発生します。そこで、世界標準化機構(ISO)と米国規格協会(ANSI)は協同で、C言語の規格の標準化を進めます。1989年12月に、ANSIが”ANSI X3.159-1989, American National Standard for Information Systems -Programming Language-C”を、1990年12月にISOが”INTERNATIONAL STANDARD ISO/IEC 9899 : 1990(E) Programming Languages-C”を発行しました。これらはそれぞれ、通称C89(ANSI C89), ISO C90と呼ばれます。我が国日本では、1993年10月に日本工業規格”JIS X3010-1993 プログラム言語C”が制定されます。

C99

その後、C言語仕様は、C++の標準化の進化に比べて停滞していきました。1995年に標準改訂が作成されましたが、これは細かい修正および国際文字集合のサポートの追加のみでした。しかし、1999年に、いくつかの改訂を経て、”ISO/IEC 9899:1999″が発行されました。この標準は、一般に”C99″と呼ばれ、ANSI標準としても2000年5月に受理されました。

C11

2014年現在の最新規格は、2011年12月8日に改訂された”ISO/IEC 9899:2011″です。


ではでは。