|
C++言語の歴史
|
C++言語の誕生
C++は、今やプログラミング言語界にすっかり定着した感のあるC言語から派生した言語であり、その設計者は、AT&Tベル研究所のBjarne Stroustrup博士です。
彼は事象駆動型のシミュレーションの記述にあたり、C言語を拡張した言語を作りました。Simula67から取り入れたクラスの概念や、強力な関数引数型チェックなどの機能を持つ言語です。したがってC++は、C言語とSimula67を両親とする言語であるといえます。それ以来この言語は
クラスつきのC(C with classes)
と呼ばれるようになります。
1983年には、仮想関数や演算子多重定義などの機能が導入されました。この言語には、Rick Mascittiによって
C++
という名称が与えられます。これは、もともとの言語の名前であるCに対して++という記号を付加したものとなっています。++とは、C言語の演算子の一つであり、
値を1単位だけ増やす
という機能を持ちます。ですから、C言語を拡張したものであって、全く異なる言語ではないということが分かります。“D”などといったネーミングに比べると控え目ですかか。Stroustrup博士が、C言語に対して敬意を払っていることの表れであるとも考えられます。
C++言語の発展
さて、現実のC++には多くのバージョンが存在します。1983年にはC++の大学への頒布が始まり、1985年に商業ベースのRelease1.0の販売が開始されます。
Stroustrup博士自身が1986年に出版した
“The C++ Programming Language”
は、そのRelease1.0に相当するC++の解説書です。このバージョンに対して、保護部などを導入し、若干の改良を施したRelease1.1や1.2などが相次いで発表されます。
その後、多重継承などの機能が追加されて、大幅な改良が行われす。これがRelease2.0です。
Stroustrup博士は、1990年にMargaret A. Ellisとの共著で
“The Annotated C++ Reference Manual”
を発表しました。この書はC++の完全な文法書であり、Release2.1に相当します。ここではテンプレートと例外処理が、今後追加されるであろう試行的な機能であると紹介されています。Release3.0では、テンプレートが正式に導入されました。Stroustrup博士は、1991年に5年ぶりに改訂した
“The C++ Programming Language Second Edition”
において、新しいC++を解説しています。
標準C++言語の発展
C++の国際的な規格や各国の国内規格は、以下の機関で“標準規格”として制定されています。
- 国際規格:国際標準化機構(ISO:International Organization for Standardization)
- 米国の規格:米国国内規格協会(ANSI:American National Standards Institute)
- 日本の規格:日本工業規格(JIS:Japanese Industrial Standards)
体裁などの細かい点が異なることを除くと、これらは(基本的には)同一のものです。現在、C++の規格は第3版までが制定されています。
- 第1版:1998年に制定された規格です。ANSI規格とISO規格がありますが、JIS規格はありません。
- 第2版:第1版に対して、小改訂を施した規格です。2003年にANSIおよびISO規格が制定され、ほぼ同時にJIS規格が制定されました(すなわち、JISの第1版は、ANSIやISOの第2版に相当します)。
- 第3版:第2版に対して、大幅な機能追加や改良が施された規格です。2011年9月に制定されました(現時点では、この規格に相当するJIS規格はまだ制定されていません)。
戻る