「クラス (コンピュータ)」の版間の差分
削除された内容 追加された内容
「概念」の連発を除去 |
I.hidekazu (会話 | 投稿記録) タグ: モバイル編集 モバイルウェブ編集 |
||
(同じ利用者による、間の1版が非表示) | |||
13行目:
== 概要 ==
ダイクストラの[[構造化プログラミング]]は、プログラムの大規模開発への道を開いたが、あくまで単一スレッド(single thread)計算機を前提としたトップダウン型開発方法であった。すなわち、プログラムのすべての機能は単線の計算プロセス上で実行する必要があり、たとえ甲と乙という汎用的な単機能を提供する検証済みのプログラムがそれぞれ独立に存在していても、両機能を実現するプログラムを作成するためには、ソースコードから該当機能部分を抜き出し、単線上に乗るように連接(concatenation)した上で、一つのプログラムとして正しく動作するように修正し、さらに再度検証しなければならない。
一方で、複数スレッド(multi thread)計算機においては、主プログラムから、甲と乙のプログラムなどの従プログラムをそれぞれ並列に実行させた上で、処理内容を従プログラムに(OSの機能などを仲介して)伝言受け渡し(message passing)して代わりに処理させることで、検証済みプログラムのソースコードに手を加えることなく、低コストで開発することができる(
[[オーレ=ヨハン・ダール]]と[[アントニー・ホーア]]は、こ
ダールとホーアは、まず主プログラムから従プログラムを並列呼び出しする際、読み込みするにあたって新たに(new)割り当てられたメモリ領域に限定して走る計算プロセスを実例(instance;インスタンス)と名付け、さらにその実例の集まり('''class''' of instances)をそれが記述されたソースコードと同一視した。その上で、呼び出されたときだけではなく、存在し続ける従プログラムの実例のもとになる手続きを'''クラス'''(class)、その実例を(「クラスの実例」ではなく)改めてクラスの'''対象'''(object)と名付けた<ref name=sp202>[[#構造化プログラミング(1975)|構造化プログラミング(1975)]] p.202</ref>。さらに、その考えに基づいて[[Simula|Simula 67]]にクラスの構文を実装した<ref>
|