Loading article…
オブジェクト指向プログラミングにおいて、メソッド呼び出しにおいて、受信オブジェクトとパラメータリストだけでなく、呼び出される特定のメソッドも動的に変更できる場合(つまり、変数にバインドしたり、式として計算したりできる場合)、そのプログラミング言語は第一級メッセージまたは動的メッセージを持つと言われます。
JavaやC++などの型付きオブジェクト指向プログラミング言語では、ファーストクラスメソッドがサポートされていないことがよくあります。[ 1 ] Smalltalkでは、型なしの方法でのみサポートされています。[ 2 ] Objective-C(Cocoa )では、 NSInvocationを使用して、実行時に型を認識する方法でファーストクラスメッセージを表現できますが、安全な使用は依然としてプログラマに依存します。
型安全な方法で第一級メッセージをサポートするための理論的な進歩はいくつかあったが、提案されたシステムのいずれもプログラミング言語で実装されておらず、おそらくその複雑さが原因であろう。[ 3 ]