【手続補正書】
【提出日】平成21年11月4日(2009.11.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
目標処理装置（１３）、記憶装置（１８）、変換器（１９）、例外処理装置（１９１）、対象例外処理装置（１７０）、および復元装置（１９２）を備える計算システムとしての例外処理システム（１０）であって、
前記目標処理装置（１３）は第１タイプであり、
前記記憶装置（１８）は、ネイティブコード部分（２８）と複数の対象コード部分（１７）とを保存し、前記ネイティブコード部分は、前記目標処理装置（１３）によって実行可能であり、前記対象コード部分は、第２タイプの対象処理装置（３）を含む対象計算アーキテクチャ（１）上で実行可能であり、
前記変換器（１９）は、複数の前記対象コード部分（１７）の少なくとも幾つかを目標コード（２１）に変換して、前記目標処理装置（１３）上で前記目標コード（２１）の実行を制御し、少なくとも１個の前記対象コード部分（１７）を前記目標コード（２１）に変換する代わりに、少なくとも１個の前記対象コード部分（１７）を前記ネイティブコード部分（２８）に結合することによって前記目標処理装置（１３）上で前記ネイティブコード部分（２８）の実行を起動させることを含み、
前記例外処理装置（１９１）は、前記目標処理装置（１３）上で前記ネイティブコード部分（２８）を実行中に生じる例外信号に応答して、（ｉ）前記記憶装置（１８）に目標ステートデータ構造を保存し、そして（ｉｉ）前記記憶装置（１８）内で対象ステートデータ構造を生成することであって、前記目標ステートデータ構造は、前記ネイティブコード部分（２８）に関して前記目標処理装置（１３）における実行の現在地点を表す目標ステートを含み、前記対象ステートデータ構造は、対象計算アーキテクチャ（１）上でエミュレートされた実行地点を表す対象ステートを含むことと；
前記対象例外処理装置（１７０）は、前記記憶装置（１８）内の前記対象ステートデータ構造において提供された前記対象ステートを基準にして例外信号を処理し、
前記復元装置（１９２）は、前記対象例外処理装置（１７０）による例外信号処理後に前記対象ステートデータ構造を使用することによって、前記記憶装置（１８）内の前記目標ステートデータ構造から、前記目標ステートを前記目標処理装置（１３）に復元することによって実行再開し、次いで前記目標処理装置（１３）に前記目標ステートに応じて前記ネイティブコード部分（２８）を実行再開させることを特徴とする、例外処理システム（１０）。
【請求項２】
前記例外処理装置（１９１）は、前記目標ステートデータ構造とのリンクを含む前記対象ステートデータ構造を生成し、
前記復元装置（１９２）は、前記対象ステートデータ構造におけるリンクを使用することによって、前記記憶装置（１８）内の前記目標ステートデータ構造の場所を特定する、請求項１記載の例外処理システム（１０）。
【請求項３】
前記復元装置（１９２）は、前記目標処理装置（１３）に復元ルーチンを実行させることによって、前記目標ステートを前記目標処理装置（１３）に復元する、請求項１記載の例外処理システム（１０）。
【請求項４】
前記例外処理装置（１９１）は、修正後の対象プログラムカウンタを含む前記対象ステートデータ構造を生成し、
前記復元装置（１９２）は、修正後の前記対象プログラムカウンタに応じて実行制御を渡し、よって前記目標処理装置（１３）は復元ルーチンを実行し、前記目標ステートをロードすることによって実行制御を前記ネイティブコード部分（２８）に戻す、請求項１記載の例外処理システム（１０）。
【請求項５】
前記対象ステートデータ構造は、修正後の対象プログラムカウンタを含み、
前記記憶装置（１８）は更に、指定場所を含み、
前記指定場所は、修正後の前記対象プログラムカウンタによって識別されるアドレスによって、前記対象コードの部分として扱われる、請求項１記載の例外処理システム（１０）。
【請求項６】
計算システム（１０）内の例外信号を処理する例外処理方法であって、前記例外処理方法は、
（ａ）対象計算アーキテクチャ（１）によって実行可能な前記対象コード（１７）を、計算システム（１０）によって実行可能な目標コード（２１）に、プログラムコード変換することによって変換するステップａと、
（ｂ）対象コード部分（１７）を前記目標コード（２１）に変換する代わりに、計算システム（１０）に固有であるネイティブコード部分（２８）を実行するステップｂと、
（ｃ）前記ネイティブコード部分（２８）の実行中に発生する例外信号に応答して、（ｉ）目標ステートを保存し、（ｉｉ）対象ステートを生成し、（ｉｉｉ）前記対象ステートを基準にして例外信号を処理するステップｃであって、前記目標ステートは、前記目標処理装置における前記ネイティブコード部分（２８）に関する計算システム（１０）における実行の現在地点を表し、前記対象ステートは、対象計算アーキテクチャ（１）上でエミュレートされた実行地点を表すことと、更に、
（ｄ）前記対象ステートを使用して前記目標ステートを復元することによって、例外信号から実行再開し、次いで前記目標ステートを使用することによって、前記ネイティブコード部分（２８）を実行再開するステップｄと
を備える、例外処理方法。
【請求項７】
前記対象ステートは、前記目標ステートとのリンクを含む、請求項６記載の例外処理方法。
【請求項８】
前記ステップｄは、復元ルーチンを実行することによって前記目標ステートを復元することを含む、請求項６記載の例外処理方法。
【請求項９】
前記対象ステートは、修正後の対象プログラムカウンタを含み、
前記例外処理方法は更に、修正後の前記対象プログラムカウンタに実行制御を渡すことによって前記復元ルーチンを実行し、前記目標ステートをロードすることによって実行制御を前記ネイティブコード部分に戻すことを含む、請求項６記載の例外処理方法。
【請求項１０】
前記対象ステートは、修正後の前記対象プログラムカウンタを含み、
前記例外処理方法は更に、指定場所を提供することを含み、
前記指定場所は、修正後の前記対象プログラムカウンタによって識別されるアドレスにおいて、前記対象コードの部分として扱われる、請求項６記載の例外処理方法。
【請求項１１】
目標計算プラットフォーム（１０）において例外信号を処理する例外処理方法であって、前記例外処理方法は、
対象計算プラットフォーム（１）によって実行可能な対象コード（１７）を、前記目標計算プラットフォーム（１０）によって実行可能な前記目標コード（２１）に変換することによって、呼出元対象コード部分（１７）を呼出元目標コード部分（２１）に変換することと、
前記呼出元目標コード部分（２１）を実行することによって、前記目標計算プラットフォーム（１０）上で前記目標コード（２１）に関して第１目標ステートを生成することと、
対象計算プラットフォーム（１）上で、前記呼出元対象コード部分の実行を表す第１対象ステートをエミュレートすることと、
前記呼出元目標コード部分（２１）から、前記目標計算プラットフォーム（１０）に固有のネイティブコード部分（２８）を実行することと、
前記目標計算プラットフォーム（１０）上で前記ネイティブコード部分（２８）を実行することによって、第２目標ステートを生成することと、そして
前記ネイティブコード部分（２８）の実行中に例外が生じた場合、前記第２目標ステートを保存し、前記第１対象ステートを基準にして第２対象ステートを生成することであって、前記第２対象ステートは前記第２目標ステートへのリンクを含むことと、
前記第２対象ステートを基準にして例外処理することと、
前記第２対象ステートを使用して前記第２目標ステートにリンクすることによって、前記ネイティブコード部分（２８）で実行再開することと
を含む、例外処理方法。
【請求項１２】
前記例外処理方法は更に、例外から実行再開する時、復元ルーチンを実行することによって、前記第２目標ステートを復元するステップを含む、請求項１１記載の例外処理方法。
【請求項１３】
前記第２対象ステートは、修正後の対象プログラムカウンタを含み、
前記例外処理方法は更に、実行制御を修正後の前記対象プログラムカウンタに渡し、前記復元ルーチンを実行することによって、保存された前記第２目標ステートをロードし、よって実行制御を前記ネイティブコード部分（２８）に戻す、請求項１１記載の例外処理方法。
【請求項１４】
修正後の前記対象プログラムカウンタは所定値を有し、
前記例外処理方法は更に、前記所定値を検出して、実行制御を前記復元ルーチンに切替える、請求項１３記載の例外処理方法。
【請求項１５】
前記第２対象ステートは、修正後の前記対象プログラムカウンタを含み、
前記例外処理方法は更に、指定場所を提供することを含み、
前記指定場所は、修正後の前記対象プログラムカウンタによって識別されるアドレスによって、前記対象コード部分として扱われる、請求項１１記載の例外処理方法。
【請求項１６】
例外処理後に例外発生地点で実行再開を試みる時、修正後の前記対象プログラムカウンタを復帰アドレスとして使用し、よって実行制御は前記指定場所に渡されることを含む、請求項１５記載の例外処理方法。
【請求項１７】
ネイティブコードに結合中に例外信号を処理する変換装置であって、前記変換装置は変換器（１９）、例外処理装置（１９１）、対象例外処理装置（１７０）、および復元装置（１９２）を有し、
前記変換器（１９）は、対象計算プラットフォーム（１）によって実行可能な前記対象コード（１７）を、目標計算プラットフォーム（１０）によって実行可能な前記目標コード（２１）に変換し、そして前記対象コード部分（１７）を前記目標コード（２１）に変換する代わりに、前記目標計算プラットフォーム（１０）に、前記目標計算プラットフォーム（１０）に固有の前記ネイティブコード部分（２８）を実行させ、
更に前記変換器（１９）は、呼出元対象コード（１７）を、前記目標計算プラットフォーム（１０）が実行するために前記呼出元目標コード（２１）に変換することによって、第１目標ステートと第１対象ステートを提供し、そして前記呼出元目標コード（２１）から前記ネイティブコード部分（２８）に呼出す時に、少なくとも前記第１対象ステートは保存され、
前記例外処理装置（１９１）は、前記ネイティブコード（２８）の実行中に発生した例外信号を検出し、第２目標ステートを保存させ、そして第２対象ステートを提供し、前記第２目標ステートは、前記ネイティブコード部分（２８）に対する、前記目標計算プラットフォーム（１０）における実行の現在地点を表し、前記第２対象ステートは、前記第２目標ステートとのリンクを含み、
前記対象例外処理装置（１７０）は、前記第２対象ステートを基準にして例外処理し、  前記復元装置（１９２）は、前記目標計算プラットフォーム（１０）に、前記第２対象ステートから前記第２目標ステートにリンクすることによって、前記ネイティブコード（２８）を実行再開させることを特徴とする、変換装置。
【請求項１８】
コンピュータに例外信号処理方法を遂行させるために、前記コンピュータが実行可能な命令を記録したコンピュータ読取可能な記憶媒体であって、前記命令は、
（ａ）対象計算アーキテクチャ（１）によって実行可能な前記対象コード（１７）を、目標計算アーキテクチャ（１０）によって実行可能な目標コード（２１）に、プログラムコード変換することによって変換するステップａと、
（ｂ）前記対象コード部分（１８）を前記目標コード（２１）に変換する代わりに、前記目標計算アーキテクチャ（１０）に固有のネイティブコード部分（２８）を実行するステップｂと、
（ｃ）前記ネイティブコード部分（２８）の実行中に発生する例外信号に応答して、（ｉ）目標ステートを保存し、（ｉｉ）対象ステートを生成し、（ｉｉｉ）前記対象ステートを基準にして例外信号を処理するステップｃであって、前記目標ステートは、前記ネイティブコード部分（２８）に関して目標計算アーキテクチャにおける実行の現在地点を表し、前記対象ステートは、前記対象計算アーキテクチャ（１）上の実行のエミュレートされた地点を表すことと、
（ｄ）前記対象ステートを使用して前記目標ステートを復元することによって、例外から実行再開し、次いで前記目標ステートを使用して前記ネイティブコード部分（２８）を実行再開するステップｄと
を備える、コンピュータ読取可能な記憶媒体。
【請求項１９】
コンピュータに例外処理方法を遂行させるために、前記コンピュータが実行可能な命令を記録したコンピュータ読取可能な記憶媒体であって、前記命令は、
対象計算プラットフォーム（１）によって実行可能な対象コード（１７）を、目標計算プラットフォーム（１０）によって実行可能な目標コード（２１）に変換することであって、前記変換は、呼出元対象コード部分（１７）を、呼出元目標コード部分（２１）に変換することを含み、
前記呼出元目標コード部分（２１）を実行することによって、前記目標計算プラットフォーム（１０）上で、前記目標コード（２１）の実行に関して第１目標ステートを生成することと、
前記対象計算プラットフォーム（１）上で、前記呼出元対象コード部分（１７）の実行を表す第１対象ステートをエミュレートすることと、
呼出元目標コード部分（２１）から、前記目標計算プラットフォーム（１０）に固有の前記ネイティブコード部分（２８）を呼出すことと、
前記目標計算プラットフォーム（１０）上で、前記ネイティブコード部分（２８）を実行することによって、前記第２目標ステートを生成することと、そして
前記ネイティブコード部分（２８）の実行中に例外が生じた場合、前記第２目標ステートを保存して、前記第１対象ステートに基づき第２対象ステートを生成することであって、前記第２対象ステートは前記第２目標ステートとのリンクを含むことと、
前記第２対象ステートを基準にして例外処理し、前記第２対象ステートを使用することによって前記第２目標ステートにリンクし、よって前記ネイティブコード部分（２８）における実行再開することと
を備える、コンピュータ読取可能な記憶媒体。