|
SIMULA(シミュラ ; SIMUlation LAnguage)とは、オルヨハン・ダールとクリステン・ニガードによってALGOL60を拡張する形で1960年代に開発が始められたシミュレーション用途のプログラミング言語を言う〔Ole(1966)〕。 ALGOLの begin ... end で囲まれた部分であるブロック(block)の概念を実体的な実例(instance)として扱うことを目的として、クラス(class)の構文と対象(object、オブジェクト)の概念を初めて導入した言語である〔ダイクストラ(1975) p.202〕。最初期のオブジェクト指向言語であるとも言われる。== 概要 == オスロのノルウェー計算センターのクリステン・ニガードとオルヨハン・ダールが1962年から1967年にかけて、 の元となる と 67 を の拡張として設計/実装した。 は当初シミュレーションに用いられたが、のちに汎用言語となった。名前「」は「シミュレーション言語」を意味する英語「」と「簡潔な汎用言語」を意味する英語「」の二つに由来する。 主に北欧圏で使用されたこと、言語的な未成熟さもあって広く普及することはなかったが、後続言語に与えた影響は大きい。特に は のオブジェクト概念を一般化したものだと言うことができる。 もまた、当初はC言語に のクラスなどの仕組みを追加したものであった。 開発の動機は、ある制限下におかれたモデル群の全体の挙動をどう記述するか、というものである。気体の分子運動を例にとると、システム全体を考えてその中の項として分子を扱うよりも、一つの一つの気体分子をモデル化し、それぞれの相互作用の結果をシステムとして捉える方が自然で取り扱いやすい。その為には小さなモデル、関連する法則、それらを一度に複数取り扱う能力が必要となる。こうして属性を備えたオブジェクト概念と、それに従属するメソッド概念が生まれたのである。 67 ではオブジェクト、 クラス、サブクラス、継承、動的束縛(仮想関数)、コルーチン、 ディスクリートイベントシミュレーション、ガベージコレクションの機能をもち、オブジェクト指向プログラミングの基本概念はすべてここで発案されているといえる。 はプログラミングパラダイムとして最初のオブジェクト指向言語であると考えられる。その名前が示すように はシミュレーションを行うために設計され、その必要性から今日のオブジェクト指向言語で使われる多くの機能のためのフレームワークを提供した。なお、 当時「オブジェクト指向」という言葉はまだない。この用語はアラン・ケイが の概念として70年代ごろに使い出したのが始まりといわれている。従ってその意味では が世界最初のオブジェクト指向言語であり、 は「オブジェクト指向として再認識が可能な最古の言語」ということができる。 VLSI設計、プロセス、プロトコル、アルゴリズムといったシミュレーションや、組版、コンピュータグラフィックス、教育といったアプリケーションソフトに は利用された。 形式のオブジェクトは 、、 で再実装されており、 の影響を受けていることが知られている。 の開発者であるビャーネ・ストロヴストルップはBCPLのような機械語を出力し高速に動作する低レベル言語に が提供する開発効率を高める機能を導入するため、 開発時に 67 の影響を大きく受けていることを認めている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Simula」の詳細全文を読む スポンサード リンク
|