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″です。
ではでは。