【手続補正書】
【提出日】平成17年10月5日(2005.10.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいて、オブジェクト指向環境のメッセージディスパッチを実行する方法であって、
メッセージがレシーバオブジェクトへディスパッチされるサイトで、予測レシーバタイプをセーブする工程と、
前記メッセージを前記レシーバオブジェクトへ送る工程と、および
前記レシーバオブジェクトが前記メッセージを受け取ると、前記レシーバオブジェクトが前記セーブされた予測レシーバタイプであると確認する工程と
を含む方法。
【請求項２】
予測レシーバタイプをセーブする工程は、前記予測レシーバタイプをレジスタに格納する工程を含む請求項１に記載の方法。
【請求項３】
メッセージは、ディスパッチされるサイトに先立つ移動命令を利用して、前記予測レシーバタイプを前記レジスタに格納する請求項２に記載の方法。
【請求項４】
予測レシーバタイプをセーブする工程は、前記予測レシーバタイプをメモリロケーションに格納する工程を含む請求項１に記載の方法。
【請求項５】
予測レシーバタイプをセーブする工程は、前記予測レシーバタイプを前記メッセージのパラメータとして前記レシーバオブジェクトへ渡す工程を含む請求項１に記載の方法。
【請求項６】
更に、前記レシーバオブジェクトは、前記セーブされた予測レシーバタイプでない場合、前記予測レシーバタイプを前記レシーバオブジェクトのタイプに変更する工程を含む請求項１〜５のいずれか１項に記載の方法。
【請求項７】
更に、メソッドルックアップルーチンをコールして前記メソッドルックアップルーチンから新メソッドを獲得する工程を含む請求項１〜６のいずれか１項に記載の方法。
【請求項８】
更に、前記サイトを変更して新メソッドを呼び出す工程を含む請求項７に記載の方法。
【請求項９】
前記レシーバオブジェクトを確認する工程は、前記レシーバオブジェクトのレシーバタイプを獲得する工程と、および、前記レシーバオブジェクトの前記レシーバタイプを、前記セーブされた予測レシーバタイプと比較する工程とを含む請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
更に、前記レシーバタイプは、前記セーブされた予測レシーバタイプに等しくない場合、前記予測レシーバタイプを前記レシーバオブジェクトの前記レシーバタイプに変更する工程を含む請求項９に記載の方法。
【請求項１１】
更に、前記レシーバオブジェクトの前記レシーバタイプは、前記セーブされた予測レシーバタイプに等しくない場合、メソッドルックアップルーチンをコールする工程を含む請求項９または１０に記載の方法。
【請求項１２】
オブジェクト指向環境のメッセージディスパッチを実行するコンピュータプログラムプロダクトであって、
メッセージがレシーバオブジェクトへディスパッチされるサイトで、予測レシーバタイプをセーブするコンピュータコードと、
前記メッセージを前記レシーバオブジェクトへ送るコンピュータコードと、
前記レシーバオブジェクトが前記メッセージを受信すると、前記レシーバオブジェクトが前記セーブされた予測レシーバタイプであると確認するコンピュータコードと、および
前記コンピュータコードを格納するコンピュータ読取り可能媒体と
を備えるコンピュータプログラムプロダクト。
【請求項１３】
前記コンピュータ読取り可能媒体は、ＣＤ−ＲＯＭ、フロッピーディスク、テープ、フラッシュメモリ、システムメモリ、ハードドライブ、および搬送波に組み込まれたデータ信号から成る群から選択される請求項１２に記載のコンピュータプログラムプロダクト。
【請求項１４】
オブジェクト指向環境のメッセージディスパッチを実行するコンピュータシステムであって、
コンピュータコードを実行するプロセッサと、
メッセージがレシーバオブジェクトへディスパッチされるサイトで、予測レシーバタイプをセーブするコンピュータコードと、
前記メッセージを前記レシーバオブジェクトへ送るコンピュータコードと、
前記レシーバオブジェクトが前記メッセージを受けたら、前記レシーバオブジェクトが前記セーブされた予測レシーバタイプであると確認するコンピュータコードと、および
前記プロセッサが実行すべき前記コンピュータコードを格納するコンピュータ読取り可能媒体と
を備えるコンピュータシステム。
【請求項１５】
コンピュータシステムにおいて、オブジェクト指向環境のメッセージディスパッチを実行する方法であって、
メッセージがレシーバオブジェクトへディスパッチされるサイトで、予測レシーバタイプをセーブする工程と、
前記メッセージを前記レシーバオブジェクトへ送る工程と、
前記レシーバオブジェクトが前記メッセージを受けると、前記レシーバオブジェクトが前記セーブされた予測レシーバタイプであると確認する工程と、
前記レシーバオブジェクトが前記セーブされた予測レシーバタイプでない場合、前記予測レシーバタイプを前記レシーバオブジェクトのタイプへ変更する工程と、
前記レシーバオブジェクトが前記セーブされた予測レシーバタイプでない場合、メソッドルックアップルーチンをコールして新メソッドを獲得する工程と、および
前記サイトを変更して新メソッドを呼び出す工程と
を含む方法。
【請求項１６】
予測レシーバタイプをセーブする工程は、前記予測レシーバタイプをレジスタに移動する工程、前記予測レシーバタイプをレジスタに格納する工程、および前記予測レシーバタイプを前記メッセージのパラメータとして前記レシーバオブジェクトへ渡す工程から成る群から選択された一つの工程を含む請求項１５に記載の方法。
【請求項１７】
前記レシーバオブジェクトを確認する工程は、前記レシーバオブジェクトのレシーバタイプを獲得する工程と、および前記レシーバオブジェクトの前記レシーバタイプを、前記セーブされた予測レシーバタイプと比較する工程とを含む請求項１５または１６に記載の方法。
【請求項１８】
オブジェクト指向環境のメッセージディスパッチを実行するコンピュータプログラムプロダクトであって、
メッセージがレシーバオブジェクトへディスパッチされるサイトで、予測レシーバタイプをセーブするコンピュータコードと、
前記メッセージを前記レシーバオブジェクトへ送るコンピュータコードと、
前記レシーバオブジェクトが前記メッセージを受けると、前記レシーバオブジェクトが前記セーブされた予測レシーバタイプであると確認するコンピュータコードと、
前記レシーバオブジェクトが前記セーブされた予測レシーバタイプでない場合、前記予測レシーバタイプを、前記レシーバオブジェクトのタイプに変更するコンピュータコードと、
前記レシーバオブジェクトが前記セーブされた予測レシーバタイプでない場合、メソッドルックアップルーチンをコールして新メソッドを獲得するコンピュータコードと、
前記サイトを変更して前記新メソッドを呼び出すコンピュータコードと、および
前記コンピュータコードを格納するコンピュータ読取り可能媒体と
を備えるコンピュータプログラムプロダクト。
【請求項１９】
前記コンピュータ読取り可能媒体は、ＣＤ−ＲＯＭ、フロッピーディスク、テープ、フラッシュメモリ、システムメモリ、ハードドライブ、および搬送波に組み込まれたデータ信号から成る群から選択される請求項１８に記載のコンピュータプログラムプロダクト。
【請求項２０】
オブジェクト指向環境のメッセージディスパッチを実行するコンピュータシステムであって、
コンピュータコードを実行するプロセッサと、
メッセージがレシーバオブジェクトへディスパッチされるサイトで、予測レシーバタイプをセーブするコンピュータコードと、
前記メッセージを前記レシーバオブジェクトへ送るコンピュータコードと、
前記レシーバオブジェクトが前記メッセージを受信すると、前記レシーバオブジェクトが前記セーブされた予測レシーバタイプであると確認するコンピュータコードと、
前記レシーバオブジェクトが前記セーブされた予測レシーバタイプでない場合、前記予測レシーバタイプを前記レシーバオブジェクトのタイプに変更するコンピュータコードと、
前記レシーバオブジェクトが前記セーブされた予測レシーバタイプでない場合、メソッドルックアップルーチンをコールして新メソッドを獲得するコンピュータコードと、
前記サイトを変更して前記新メソッドを呼び出すコンピュータコードと、および
前記プロセッサが実行すべき前記コンピュータコードを格納するコンピュータ読取り可能媒体と
を備えるコンピュータシステム。
【請求項２１】
コンピュータシステムにおいて、オブジェクト指向プログラムのためのメッセージディスパッチを実行する方法であって、
第１メッセージディスパッチ技法を特定サイトで実行してメッセージをレシーバオブジェクトへディスパッチする工程と、
第２メッセージディスパッチ技法が前記特定サイトで望ましいか否か、をプログラム実行中に動的に決定する工程と、および
前記第２メッセージディスパッチ技法が望ましい場合、前記第２メッセージディスパッチ技法を前記特定サイトで実行して、メッセージを前記レシーバオブジェクトへディスパッチする工程と
を含む方法。
【請求項２２】
前記第２メッセージディスパッチ技法が望ましいか否か、の動的な決定は、前記特定サイトがメッセージをディスパッチした、異なるレシーバタイプの数を決定することに、少なくとも部分的に基づいていることを特徴とする請求項２１記載の方法。
【請求項２３】
第２メッセージディスパッチ技法は望ましいか否か、をプログラム実行中に決定する工程は、前記特定サイトがメッセージを第１所定数より多い異なるレシーバタイプへディスパッチしたか否か、を決定する工程を含む請求項２１または２２に記載の方法。
【請求項２４】
更に、前記第１ディスパッチ技法は、メッセージをディスパッチした、異なるレシーバタイプのカウント数を維持する工程を含む請求項２３に記載の方法。
【請求項２５】
前記カウント数は、メソッドに先立つＮＯＰ命令にメッセージをディスパッチすることによって表され、前記メソッドは、ディスパッチされたメッセージによって指示されるオペレーションを実行するものであることを特徴とする請求項２４に記載の方法。
【請求項２６】
前記第１メッセージディスパッチ技法は、プログラム実行の前に静的に決定される請求項２１〜２５のいずれか１項に記載の方法。
【請求項２７】
前記第１メッセージディスパッチ技法は、インラインキャッシングである請求項２１〜２４のいずれか１項に記載の方法。
【請求項２８】
前記第２メッセージディスパッチ技法は、多形インラインキャッシングとハッシングから選択される請求項２１〜２７のいずれか１項に記載の方法。
【請求項２９】
更に、第３メッセージディスパッチ技法が前記特定サイトで望ましいか否か、をプログラム実行中に動的に決定する工程と、
前記第３メッセージディスパッチ技法を前記特定サイトで実行して、メッセージを前記レシーバオブジェクトへディスパッチする工程と、
を含むことを特徴とする請求項２１〜２８の何れか１項に記載の方法。
【請求項３０】
第３メッセージディスパッチ技法が望ましいか否か、をプログラム実行中に決定する工程は、前記第３メッセージディスパッチ技法が望ましい場合に前記特定サイトがメッセージを第２所定数より多い異なるレシーバタイプへディスパッチするか否か、を決定する工程を含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
前記第２メッセージディスパッチ技法が前記特定サイトで望ましいか否か、をプログラム実行中に動的に決定する工程は、前記特定サイトで第１メッセージディスパッチ技法を実行した後に、前記第２メッセージディスパッチ技法が前記特定サイトで望ましいか否か、をプログラム実行中に動的に決定する工程を含むことを特徴とする請求項２１〜３０の何れか１項に記載の方法。
【請求項３２】
オブジェクト指向プログラムためのメッセージディスパッチを実行するコンピュータシステムであって、
コンピュータコードを実行するプロセッサと、
第１メッセージディスパッチ技法を特定サイトで実行してメッセージをレシーバオブジェクトへディスパッチするコンピュータコードと、
第２メッセージディスパッチ技法が前記特定サイトで望ましいか否か、をプログラム実行中に動的に決定するコンピュータコードと、
前記第２メッセージディスパッチ技法が望ましい場合、前記第２メッセージディスパッチ技法を前記特定サイトでその後に実行して、メッセージを前記レシーバオブジェクトへディスパッチするコンピュータコードと、
前記プロセッサが実行すべき前記コンピュータコードを格納するコンピュータ読取り可能媒体と、
を備えるコンピュータシステム。