Simula
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Simula(シミューラ)は最初期のオブジェクト指向言語の一つである。
[編集] 概要
ノルウェー計算センターのクリステン・ニガードとオルヨハン・ダールが1962年から1967年にかけて、Simulaの元となるSimula67をALGOL60の拡張として設計/実装した。Simulaは当初シミュレーションに用いられたが、のちに汎用言語となった(Simulation language -> Simple universal language)。
主に北欧圏で使用されたこと、言語的な未成熟さもあって広く普及することはなかったが、後続言語に与えた影響は大きい。特にSmalltalkはSimulaのオブジェクト概念を一般化したものだと言うことができる。C++もまた、当初はC言語にSimulaのクラスなどの仕組みを追加したものであった。
開発の動機は、ある制限下におかれたモデル群の全体の挙動をどう記述するか、というものである。気体の分子運動を例にとると、システム全体を考えてその中の項として分子を扱うよりも、一つの一つの気体分子をモデル化し、それぞれの相互作用の結果をシステムとして捉える方が自然で取り扱いやすい。その為には小さなモデル、関連する法則、それらを一度に複数取り扱う能力が必要となる。こうして属性を備えたオブジェクト概念と、それに従属するメソッド概念が生まれたのである。
Simulaはクラスや継承、動的束縛の機能をもち、オブジェクト指向プログラミングの基本概念はすべてここで発案されているといえる。
なお、Simula当時「オブジェクト指向」という言葉はまだない。この用語はアラン・ケイがSmalltalkの概念として70年代ごろに使い出したのが始まりといわれている。従ってその意味ではSmalltalkが世界最初のオブジェクト指向言語であり、Simulaは「オブジェクト指向として再認識が可能な最古の言語」ということができる。
[編集] 関連項目
[編集] 外部リンク
- INTRODUCTION TO OOP IN SIMULA
- Cim - GNUによるフリーなSimulaのC言語トランスレータ
- Cim - Simula to C translator. Mother of all OO-languages - Cim の配布ページ
- Cim 3.33 for MS Windows - 上記のWindows版