Simulaにおけるクラス
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/13 15:19 UTC 版)
「クラス (コンピュータ)」の記事における「Simulaにおけるクラス」の解説
ダイクストラの構造化プログラミングは、プログラムの大規模開発への道を開いたが、あくまで単一スレッド(single thread)計算機を前提としたトップダウン型開発方法であった。すなわち、プログラムのすべての機能は単線の計算プロセス上で実行する必要があり、たとえ甲と乙という汎用的な単機能を提供する検証済みのプログラムがそれぞれ独立に存在していても、両機能を実現するプログラムを作成するためには、ソースコードから該当機能部分を抜き出し、単線上に乗るように連接(concatenation)した上で、一つのプログラムとして正しく動作するように修正し、さらに再度検証しなければならない。 一方で、複数スレッド(multi thread)計算機においては、主プログラムから、甲と乙のプログラムなどの従プログラムをそれぞれ並列に実行させた上で、処理内容を従プログラムに(OSの機能などを仲介して)伝言受け渡し(message passing)して代わりに処理させることで、検証済みプログラムのソースコードに手を加えることなく、低コストで開発することができる(コルーチンを用いたプログラミング)。 オーレ=ヨハン・ダールとアントニー・ホーアは、このような考え方の有効性を主張し、上記のような一連の操作を一つの言語の中で完結させるための機構を提案した。それがクラスの構文である。 ダールとホーアは、まず主プログラムから従プログラムを並列呼び出しする際、読み込みするにあたって新たに(new)割り当てられたメモリ領域に限定して走る計算プロセスを実例(instance;インスタンス)と名付け、さらにその実例の集まり(class of instances)をそれが記述されたソースコードと同一視した。その上で、呼び出されたときだけではなく、存在し続ける従プログラムの実例のもとになる手続きをクラス(class)、その実例を(「クラスの実例」ではなく)改めてクラスの対象(object)と名付けた。さらに、その考えに基づいてSimula 67にクラスの構文を実装した。
※この「Simulaにおけるクラス」の解説は、「クラス (コンピュータ)」の解説の一部です。
「Simulaにおけるクラス」を含む「クラス (コンピュータ)」の記事については、「クラス (コンピュータ)」の概要を参照ください。
- Simulaにおけるクラスのページへのリンク