1985年 ・ オブジェクト指向・命令型
C++の歴史
C に Simula 流のクラスを加える形で、Bell 研究所でストラウストラップが作った言語。C 並みの実行効率と低水準の柔軟さを保ったまま、プログラムを整理する仕組みを持ち込んだ。のちにテンプレートと標準ライブラリ(STL)でジェネリックプログラミングを取り込んだ。
- 年(初めて公開された年)
- 1985年
- 作った人
- Bjarne Stroustrup
- 組織
- AT&T Bell Labs
- 系統
- オブジェクト指向・命令型
年の決め方 1985年に Cfront 1.0 が最初の商用リリースとして提供され、同年に『The C++ Programming Language』初版が出た。C with Classes としての利用開始は1979年、C++ の名が付いたのは1983〜84年(HOPL III の年表による)。
C++の祖先と子孫
影響元をたどれる言語7、影響先をたどれる言語14を描きました。点を押すとその言語のページに移ります。
全体の図は一覧の系統図にあります。
目指したこと
Simula のプログラム構成の機能と、C の効率・システム記述の柔軟さを併せ持つことを目指した。
“1985 Cfront Release 1.0 (first commercial release)”
年の根拠の出典: Bjarne Stroustrup, Evolving a language in and for the real world: C++ 1991-2006 (HOPL III)
“C++ was designed to provide Simula’s facilities for program organization”
目指したことの根拠の出典: Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
影響を受けた言語
出典が明言した線だけです。「受け継いだ点」は出典の記述を要約したものです。
-
Simula ・ 1965年
受け継いだ点: クラス(プログラム構成の仕組み)
影響を受けた側の資料が述べています ・ 出典: Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
-
C ・ 1972年
受け継いだ点: 効率・低水準の柔軟さ・構文の土台
影響を受けた側の資料が述べています ・ 出典: Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
-
ML ・ 1973年
受け継いだ点: 着想元の一つ(パラメータ化された型)
影響を受けた側の資料が述べています ・ 出典: Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
-
Ada ・ 1980年前後
受け継いだ点: テンプレートなどの着想元の一つ(Ada のジェネリクス)
影響を受けた側の資料が述べています ・ 出典: Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
一覧にない言語からの影響(名前だけ): Algol 68・BCPL・CLU・ML
影響を与えた言語
-
Python ・ 1991年
受け継がれた点: クラス機構(C++ と Modula-3 の混合)
影響を受けた側の資料が述べています ・ 出典: Python docs, Tutorial: Classes
-
Lua ・ 1994年
受け継がれた点: 必要な場所で局所変数を宣言できること
影響を受けた側の資料が述べています ・ 出典: Ierusalimschy, de Figueiredo, Celes, The evolution of an extension language: a history of Lua (2001)
-
Java ・ 1995年
受け継がれた点: 見た目を C++ に似せ、複雑さを除く
影響を受けた側の資料が述べています ・ 出典: Oracle, The Java Language Environment (white paper)
-
C# ・ 2000年
受け継がれた点: Visual C++ の系譜・C++ の演算子や文
影響を与えた側の資料が述べています ・ 出典: Microsoft Introduces Highly Productive .NET Programming Language: C# (2000)
-
Rust ・ 2010年
受け継がれた点: 参照・RAII・スマートポインタ・ムーブ・単相化
影響を受けた側の資料が述べています ・ 出典: The Rust Reference: Influences
関わる思想のテーマ
あわせて見る
- プログラミング言語の比較 C・JavaScript・Java・Python を同じものさしで。
- 冗談と実験の枝:難解プログラミング言語
出典
- Bjarne Stroustrup, A History of C++: 1979-1991 (HOPL II)
- Bjarne Stroustrup, Evolving a language in and for the real world: C++ 1991-2006 (HOPL III)
- Python docs, Tutorial: Classes
- Ierusalimschy, de Figueiredo, Celes, The evolution of an extension language: a history of Lua (2001)
- Oracle, The Java Language Environment (white paper)
- Microsoft Introduces Highly Productive .NET Programming Language: C# (2000)
- The Rust Reference: Influences
影響の線の引き方は一覧の注記に書いています。