web-dev-qa-db-ja.com

「仮想」の語源(メソッド/メソッドテーブル/継承)

私の知る限り、これは一般的にlateまたはdynamic bindingを指します。では、なぜlatedynamicのような単語が使用されなかったのでしょうか。

4
Andrey Moiseev

遅延バインディングまたは動的バインディングという用語は、識別子がメソッドの実際の実装にどのように解決されるかを説明し、仮想メソッドがどのように使用されるかを説明しません。これらのいずれかを使用してメソッドを説明した場合、late-boundまたはdynamicly-boundのようなものが使用されます。これは、時間がかかるだけでなく、また、実装方法に少し近すぎます。

virtualを使用してメソッドを説明することは、高レベルの説明として優れています。これにより、コンパイラがマシンレベルでどのように処理するかを知らなくても、原理を理解できます。

また、仮想メソッドと具象メソッドを区別したい場合でも、遅延バインディングのみを使用して実装される言語でも機能します。

5
Guffa

Word自体はSIMULA-67で導入されました。 Ole-Johan Dahlの歴史 は、SIMULAへの「仮想」の導入が1967年5月の直前に、論文に含まれるのにちょうど間に合ったことを示しています シミュレーションプログラミング言語に関するIFIP TC2会議で発表されたクラスおよびサブクラス宣言

ただし、「仮想」が選択された理由を示す注記はありません。

3
porges