【誤訳訂正書】
【提出日】平成21年12月18日(2009.12.18)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】特許請求の範囲
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】  コンピュータにより実行される、直属の親スーパークラスから継承する第１のクラス内のメソッドのためのディスパッチテーブルの構築方法であって、
前記コンピュータが、ディスパッチテーブルを前記直属の親スーパークラスからコピーするステップと、
前記コンピュータが、前記第１のクラス内のメソッドがクラス階層内の前記第１のクラスの先祖スーパークラス内にも存在するかどうかを判定するステップと、
前記メソッドが前記先祖スーパークラス内にも存在することが判定された場合に、前記コンピュータが、前記メソッドの前記先祖スーパークラスバージョンへのアクセス可能性を示す情報に基づいて、前記第１のクラスから該メソッドの該先祖スーパークラスバージョンへのアクセスが可能かどうかを判定するステップと、
前記メソッドの前記先祖スーパークラスバージョンへアクセスできないと判定された場合に、前記コンピュータが、前記第１のクラス内の前記メソッドへのポインタを格納する新規エントリを前記ディスパッチテーブル内に作成するステップと、
前記メソッドの前記先祖スーパークラスバージョンへアクセスできると判定された場合に、前記コンピュータが、前記ディスパッチテーブル内にある、該メソッドの該先祖スーパークラスバージョンへのポインタを格納しているエントリに、前記第１のクラス内のメソッドへのポインタを格納することで、該エントリを上書きするステップと、
を含むディスパッチテーブルの構築方法。
【請求項２】  前記第１のクラスが少なくとも一つのスーパーインターフェースからメソッドを継承する、
請求項１に記載の方法。
【請求項３】  前記メソッドがミランダ（miranda）メソッドである、
請求項２に記載の方法。
【請求項４】  前記ディスパッチテーブルを構築する前記方法がオブジェクト指向型言語によって実装される、
請求項１〜３のいずれか一項に記載の方法。
【請求項５】  前記オブジェクト指向型言語がＪＡＶＡ（登録商標）である、
請求項４に記載の方法。
【請求項６】  前記エントリ又は前記新規エントリの位置がインデックスにより示される、
請求項１〜５のいずれか一項に記載の方法。
【請求項７】  前記クラスがパッケージに属する、
請求項１〜６のいずれか一項に記載の方法。
【請求項８】  前記アクセス可能性には、パブリック（public）アクセス可能性、プライベート（private）アクセス可能性、プロテクテッド(protected)アクセス可能性、及びパッケージプライベートアクセス可能性のうちの一つが含まれる、
請求項１〜７のいずれか一項に記載の方法。
【請求項９】  コンピュータにより実行される、先祖階層内の直属の親スーパークラスから継承する第１のクラス内のメソッドのためのディスパッチテーブルの構築方法であって、
前記コンピュータが、ディスパッチテーブルを前記直属の親スーパークラスからコピーするステップと、
前記コンピュータが、前記第１のクラス内のメソッド及び該メソッドへのアクセスの可否を示すアクセス可能性が、前記先祖階層のスーパークラス内に存在するかどうかを判定するステップと、
前記コンピュータが、前記メソッド及び前記アクセス可能性が前記先祖階層のスーパークラス内にも存在することが判定された場合に、該スーパークラスに対応するディスパッチテーブルのインデックスを前記メソッド及び前記アクセス可能性に割り当てることを、メソッドに関連付けられたアクセス可能性毎に行うステップと、
前記コンピュータが、前記メソッド及び前記アクセス可能性が前記先祖階層のスーパークラス内に存在しないと判定された場合に、前記ディスパッチテーブルのインデックスを作成して前記メソッド及び前記アクセス可能性を該インデックスに割り当てることを、メソッドに関連付けられたアクセス可能性毎に行うステップと、
前記コンピュータが、前記メソッドへのポインタを格納する前記ディスパッチテーブル内のエントリを前記メソッドが割り当てられたインデックスに割り当てることを、各インデックスについて行うステップと、
を含むディスパッチテーブルの構築方法。
【請求項１０】  前記コンピュータが、前記アクセス可能性に基づいて決定された優先度を、前記メソッド及び前記アクセス可能性に対応するエントリに割り当てるステップを更に含む、
請求項９に記載の方法。
【請求項１１】  前記優先度を前記エントリに割り当てるステップが、前記メソッドと、前記第１のクラスのアクセス可能性に対応するアクセス可能性とに関連付けられた前記エントリに一次優先度を割り当てるステップを含む、
請求項１０に記載の方法。
【請求項１２】  前記メソッドのすべての前記アクセス可能性にインデックスが割り当てられた場合に、前記コンピュータが、前記第１のクラス内の前記メソッド及び前記アクセス可能性が前記先祖階層のスーパークラス内にも存在するかどうかの判定を中止するステップを更に含む、
請求項９〜１１のいずれか一項に記載の方法。
【請求項１３】  前記アクセス可能性がパブリックアクセス可能性、プライベートアクセス可能性、プロテクテッドアクセス可能性、又はパッケージプライベートアクセス可能性である、
請求項９〜１２のいずれか一項に記載の方法。
【請求項１４】  前記第１のクラス内の前記メソッド及び前記アクセス可能性が前記先祖階層のスーパークラス内にも存在するかどうかの判定は、前記メソッド及びアクセス可能性が見出されなかった場合の第１の状態から、前記メソッド及びアクセス可能性が見出された場合の第２の状態へ変化することを示すインデックスを用いて実行される、
請求項９に記載の方法。
【請求項１５】  前記コンピュータが、前記ディスパッチテーブルをメモリに割り当てるために該ディスパッチテーブルのサイズを判定するステップを更に含む、
請求項９〜１４のいずれか一項に記載の方法。
【請求項１６】  前記コンピュータが、割り当てられた各エントリに対応する前記ディスパッチテーブルの少なくとも一つのエントリを割り当てるステップを更に含む、
請求項１５に記載の方法。
【請求項１７】  前記コンピュータが前記ディスパッチテーブルを前記メモリに書き込むステップを更に含む、
請求項１５又は１６に記載の方法。
【請求項１８】  スーパークラスから継承する第１のクラス内のメソッドのためのディスパッチテーブルの構築方法をコンピュータに実行させるためのプログラムを記録したコンピュータ可読記憶媒体であって、
前記構築方法が
前記第１のクラスの直属の親スーパークラスからディスパッチテーブルをコピーするステップと、
前記第１のクラス内のメソッドがクラス階層内の前記第１のクラスの先祖スーパークラス内にも存在するかどうかを判定するステップと、
前記メソッドが前記先祖スーパークラス内にも存在することが判定された場合に、前記メソッドの前記先祖スーパークラスバージョンへのアクセス可能性を示す情報に基づいて、前記第１のクラスから該メソッドの該先祖スーパークラスバージョンへのアクセスが可能かどうかを判定するステップと、
前記メソッドの前記先祖スーパークラスバージョンへアクセスできないと判定された場合に、前記第１のクラス内の前記メソッドへのポインタを格納する新規エントリを前記ディスパッチテーブル内に作成するステップと、
前記メソッドの前記先祖スーパークラスバージョンへアクセスできると判定された場合に、前記ディスパッチテーブル内にある、該メソッドの該先祖スーパークラスバージョンへのポインタを格納しているエントリに、前記第１のクラス内のメソッドへのポインタを格納することで、該エントリを上書きするステップと、を含む、
コンピュータ可読記憶媒体。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００４３
【訂正方法】変更
【訂正の内容】
【００４３】
図８から図１３は、本発明の一実施の形態に従うディスパッチテーブル構造プロセス８００を示す。ディスパッチテーブルは、直系のスーパークラスＳを有するパッケージＰ内のクラスＣのために構築される。ディスパッチテーブル構造プロセス８００はまた、Vtableのサイズを計算し、不揮発性メモリの最適サイズに設定した部分にそのVtableを割り当てて書き込む。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００６３
【訂正方法】変更
【訂正の内容】
【００６３】
図１４から図１６は、本発明の他の実施の形態に従い、ルックアップ量を低減させる代替ディスパッチテーブル構造プロセス１４００を示す。それはまた同時に、ディスパッチテーブルのサイズを判定し、何のインデックスがVtable内の各メソッドと関連するかを判定する。一旦これが実行されると、プロセスは、Vtableを割り当て、適切なエントリを書き込む。再び、ディスパッチテーブルは、直系のスーパークラスＳを有するパッケージＰ内のクラスＣのために構築される。ディスパッチテーブル構造プロセス１４００は、それが、クラス及びインターフェース階層の一横断において、メソッドＭの各アクセス可能性のためのインデックスを判定する一方で、同時に、Vtableのサイズを判定するので、先の実施例とは異なる。