Simula
しみゅら言語1967
ノルウェーで作られた、シミュレーション向けの言語。「クラス」や「オブジェクト」という概念を初めて言語に持ち込み、オブジェクト指向プログラミングの源流とされる。後のSmalltalkやC++に流れ込む発想がここで生まれた。
概要
Simulaは、ノルウェー計算センター(Norwegian Computing Center)のOle-Johan DahlとKristen Nygaardによって開発された言語である。Wikipedia記載によれば、Kristen Nygaardは1957年からシミュレーション関連の研究に着手しており、1962年1月にOle-Johan Dahlが加わったことでSimula I(ALGOL 60を土台にした離散事象シミュレーション向け言語)の構想が固まり、1962年5月には基本概念が確立、1965年1月にはUNIVAC 1107上で実装が稼働可能になったとされる。
仕組み
1967年にはDahlとNygaardが、オスロで開催されたシミュレーション言語に関するIFIP作業会議でクラスとサブクラス宣言に関する論文を発表し、これがSimula 67の最初の正式な定義になったとされる(Wikipedia記載)。Simula 67が導入したとされる中心的な概念は、オブジェクト・クラス・継承とサブクラス・仮想手続き(virtual procedure)・コルーチン・離散事象シミュレーションであり、ガベージコレクションの仕組みも備えていたとされる。2001年、DahlとNygaardは「Simula IおよびSimula 67の設計を通じたオブジェクト指向プログラミングの萌芽への根本的な貢献」に対してACMチューリング賞を受賞した(Wikipedia記載)。
| 用途 | シミュレーション |
|---|---|
| 貢献 | オブジェクト指向の起源 |
関連項目
- Smalltalkゼロックスのパロアルト研究所で生まれた、純粋なオブジェクト指向言語。すべてをオブジェクトとメッセージで表す思想と、開発環境そのものを内包する発想は後世に大きな影響を与えた。GUIやIDEの原型ともつながっている。
- C++ビャーネ・ストロヴストルップがC言語にオブジェクト指向などの機能を加えて作った言語。性能と抽象度を両立でき、ゲーム・ブラウザ・各種アプリの基盤として広く使われている。Cとの互換を保ちながら巨大に育った言語。
- ALGOL学術的に設計された初期の高水準言語。ブロック構造や再帰など、現代の言語に当たり前にある概念の多くを整理して広めた。言語そのものより、後のCやPascalなど数多くの言語に与えた影響が大きい、いわば言語の祖先。
- オブジェクト指向データとそれを扱う処理を「オブジェクト」としてまとめて考える設計の考え方。Simulaで芽生えSmalltalkで確立し、C++やJavaを通じて主流になった。大きなプログラムを部品に分けて扱う、長く使われてきた発想。