JP2005215830A - コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 - Google Patents
コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 Download PDFInfo
- Publication number
- JP2005215830A JP2005215830A JP2004019506A JP2004019506A JP2005215830A JP 2005215830 A JP2005215830 A JP 2005215830A JP 2004019506 A JP2004019506 A JP 2004019506A JP 2004019506 A JP2004019506 A JP 2004019506A JP 2005215830 A JP2005215830 A JP 2005215830A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- variable
- content
- instruction sequence
- storage area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】 最適化の対象プログラムにおいて、変数又は変数により指定される記憶領域の内容を更新する更新命令を検出する更新命令検出部と、対象プログラムにおいて、他の命令列に制御を移す制御移行命令により制御が移行されて、変数又は記憶領域の内容に応じて異なる処理を行う命令列を検出する命令列検出部と、検出した当該命令列を、変数又は記憶領域の内容が予め定められた特定の内容である場合の処理に最適化してコンパイルする命令列コンパイル部と、対象プログラムにおける、更新命令から制御移行命令までの間に、変数の内容又は記憶領域の内容が特定の内容である場合に実行され、制御移行命令の移行先アドレスを、命令列コンパイル部により最適化された命令列のアドレスに設定する設定命令を生成する設定命令生成部とを備える最適化コンパイラを提供する。
【選択図】図1
Description
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
なお、以降の説明において、メソッドコンパイル部140により変数の内容又は記憶領域の内容が特定の内容である場合の処理に最適化されたメソッドを、その変数又はその記憶領域について特殊化されたメソッドと呼ぶ。
なお、好ましくは、設定命令生成部150は、this.Vの内容を更新する更新命令が、常に単一のスレッドにより実行されると判断した場合に、synchronized命令を生成しな。この場合、synchronized命令に要する処理時間を削減することにより対象プログラム20をより高速に実行させることができる。
(項目1) 最適化の対象プログラムにおいて、変数の内容又は変数により指定される記憶領域の内容を更新する更新命令を検出する更新命令検出部と、前記対象プログラムにおいて、他の命令列に制御を移す制御移行命令により制御が移行されて、前記変数の内容又は前記記憶領域の内容に応じて異なる処理を行う命令列を検出する命令列検出部と、検出した当該命令列を、前記変数の内容又は前記記憶領域の内容が予め定められた特定の内容である場合の処理に最適化してコンパイルする命令列コンパイル部と、前記対象プログラムにおける、前記更新命令から前記制御移行命令までの間に、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合に実行され、前記制御移行命令の移行先アドレスを、前記命令列コンパイル部により最適化された前記命令列のアドレスに設定する設定命令を生成する設定命令生成部とを備える最適化コンパイラ。
(項目2) 前記対象プログラムは、オブジェクト指向プログラム言語で記述されており、前記命令列は、オブジェクトのメソッドであり、前記制御移行命令は、当該オブジェクトの複数のメソッドについて、各メソッドの識別情報を、当該メソッドをコンパイルした命令列のアドレスに対応付けたメソッドテーブルから、呼び出す対象のメソッドの識別情報に対応付けられたアドレスを選択して、当該アドレスに制御を移行することにより、当該メソッドを呼び出し、前記設定命令生成部は、前記設定命令として、前記更新命令により更新された内容が前記特定の内容である場合に実行され、前記命令列コンパイル部により最適化された命令列のアドレスを、前記メソッドテーブルに格納する命令を生成する項目1記載の最適化コンパイラ。
(項目3) 前記制御移行命令は、制御の移行を指示する命令コードと、制御の移行先アドレスを示すオペランドとを含み、前記設定命令生成部は、前記設定命令として、前記更新命令により更新された内容が前記特定の内容である場合に実行され、前記制御移行命令のオペランドを、前記命令列コンパイル部により最適化された前記命令列のアドレスに書換える命令を生成する項目1記載の最適化コンパイラ。
(項目5) 前記更新命令検出部は、前記対象プログラムの各変数について、当該変数の読み書き許可範囲から、当該変数又は当該変数により指定される記憶領域の全ての更新命令を検出し、前記更新命令検出部により当該変数又は当該変数により指定される記憶領域の全ての更新命令が検出された場合において、前記命令列コンパイル部は、前記命令列検出部が検出した前記命令列を、当該変数の内容又は当該記憶領域の内容が前記特定の内容である場合の処理に最適化してコンパイルした特殊化命令列と、当該命令列を、当該処理に最適化せずにコンパイルした通常命令列とを生成し、前記設定命令生成部は、前記更新命令検出部により検出された各更新命令について、当該更新命令から前記制御移行命令までの間に実行される範囲に、当該更新命令により更新された内容が前記特定の内容である場合には、前記移行先アドレスを前記特殊化命令列のアドレスに設定し、当該更新命令により更新された内容が前記特定の内容でない場合には、前記移行先アドレスを前記通常命令列のアドレスに設定する命令を、前記設定命令として生成する項目4記載の最適化コンパイラ。
(項目6) 前記設定命令生成部は、更に、変数の内容又は変数により指定される記憶領域の内容を当該変数の前記読み書き許可範囲外から書換えるリフレクションメソッド内に、各制御移行命令の移行先アドレスを前記通常命令列に設定する設定命令を生成する項目5記載の最適化コンパイラ。
(項目7) 前記命令列検出部が検出した前記命令列を、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合の処理に最適化した場合に、当該処理に最適化せずにコンパイルした場合と比較して、短縮される実行時間の見積を算出し、算出した当該実行時間の見積に、当該命令列の実行頻度の見積を乗じることにより、最適化の効果を算出する最適化効果算出部と、前記設定命令を生成した場合に当該設定命令に要する処理時間の見積を算出し、算出した当該処理時間の見積に、当該設定命令の実行頻度の見積を乗じることにより、最適化のオーバヘッドを算出する最適化オーバヘッド算出部とを更に備え、前記設定命令生成部は、各命令列についての前記最適化の効果の合計が、各設定命令についての前記最適化のオーバヘッドの合計を超える場合に設定命令を生成する項目1記載の最適化コンパイラ。
(項目9) 前記対象プログラムのプログラマは、前記対象プログラムにおける各変数に、当該変数の内容が他のスレッドの処理により更新され得ることを示すボラタイル属性を定めることができ、前記最適化効果算出部は、前記更新命令により更新される前記変数又は前記更新命令により更新される前記記憶領域を指定する変数に、前記ボラタイル属性が定められていない場合に、前記命令列検出部が検出した命令列から当該変数の内容又は当該記憶領域の内容をメモリから読み出す命令を削除することにより短縮される実行時間の見積を算出する項目7記載の最適化コンパイラ。
(項目10) 前記対象プログラムは、オブジェクト指向プログラム言語で記述されており、前記命令列は、オブジェクトのメソッドであり、前記命令列コンパイル部は、前記対象プログラムにおいて所定の変数又は記憶領域の更新命令がオブジェクトのコンストラクタのみにおいて検出された場合に、当該変数又は記憶領域の内容に応じて異なる処理を行う命令列を、当該変数又は記憶領域の内容が特定の内容である場合の処理に最適化してコンパイルする項目1記載の最適化コンパイラ。
(項目11) 前記対象プログラムは、オブジェクト指向プログラミング言語により記述されており、前記更新命令検出部は、前記更新命令として、オブジェクトのメンバー変数の内容又はメンバー変数により指定される記憶領域の内容を更新する命令を検出し、前記命令列検出部は、メソッド呼び出し命令により呼び出されて実行され、前記メンバー変数の内容又は前記メンバー変数により指定される記憶領域の内容に応じて異なる処理を行うメソッドを、前記命令列として検出し、前記命令列コンパイル部は、前記命令列検出部により検出されたメソッドを、メンバー変数の内容又はメンバー変数により指定される記憶領域の内容が前記特定の内容である場合の処理に最適化してコンパイルし、前記設定命令生成部は、前記設定命令として、前記更新命令により更新された内容が前記特定の内容である場合に実行され、前記メソッド呼出命令による呼出先アドレスを、前記命令列コンパイル部により最適化されたメソッドのアドレスに設定する命令を生成する項目1記載の最適化コンパイラ。
(項目13) 最適化の対象プログラムをコンピュータにより最適化させるコンパイルプログラムであって、前記コンピュータを、前記対象プログラムにおいて、変数の内容又は変数により指定される記憶領域の内容を更新する更新命令を検出する更新命令検出部と、前記対象プログラムにおいて、他の命令列に制御を移す制御移行命令により制御が移行されて、前記変数の内容又は前記記憶領域の内容に応じて異なる処理を行う命令列を検出する命令列検出部と、検出した当該命令列を、前記変数の内容又は前記記憶領域の内容が予め定められた特定の内容である場合の処理に最適化してコンパイルする命令列コンパイル部と、前記対象プログラムにおける、前記更新命令から前記制御移行命令までの間に、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合に実行され、前記制御移行命令の移行先アドレスを、前記命令列コンパイル部により最適化された前記命令列のアドレスに設定する設定命令を生成する設定命令生成部として機能させるコンパイルプログラム。
(項目14) 項目13記載のコンパイルプログラムを記録した記録媒体。
20 対象プログラム
30 結果プログラム
100 更新命令検出部
110 メソッド検出部
120 最適化効果算出部
130 最適化オーバヘッド算出部
140 メソッドコンパイル部
150 設定命令生成部
800 オブジェクト
810 ポインタ
820 第1メソッドテーブル
830 命令列
840 第2メソッドテーブル
850 命令列
Claims (14)
- 最適化の対象プログラムにおいて、変数の内容又は変数により指定される記憶領域の内容を更新する更新命令を検出する更新命令検出部と、
前記対象プログラムにおいて、他の命令列に制御を移す制御移行命令により制御が移行されて、前記変数の内容又は前記記憶領域の内容に応じて異なる処理を行う命令列を検出する命令列検出部と、
検出した当該命令列を、前記変数の内容又は前記記憶領域の内容が予め定められた特定の内容である場合の処理に最適化してコンパイルする命令列コンパイル部と、
前記対象プログラムにおける、前記更新命令から前記制御移行命令までの間に、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合に実行され、前記制御移行命令の移行先アドレスを、前記命令列コンパイル部により最適化された前記命令列のアドレスに設定する設定命令を生成する設定命令生成部と
を備える最適化コンパイラ。 - 前記対象プログラムは、オブジェクト指向プログラム言語で記述されており、
前記命令列は、オブジェクトのメソッドであり、
前記制御移行命令は、当該オブジェクトの複数のメソッドについて、各メソッドの識別情報を、当該メソッドをコンパイルした命令列のアドレスに対応付けたメソッドテーブルから、呼び出す対象のメソッドの識別情報に対応付けられたアドレスを選択して、当該アドレスに制御を移行することにより、当該メソッドを呼び出し、
前記設定命令生成部は、前記設定命令として、前記更新命令により更新された内容が前記特定の内容である場合に実行され、前記命令列コンパイル部により最適化された命令列のアドレスを、前記メソッドテーブルに格納する命令を生成する
請求項1記載の最適化コンパイラ。 - 前記制御移行命令は、制御の移行を指示する命令コードと、制御の移行先アドレスを示すオペランドとを含み、
前記設定命令生成部は、前記設定命令として、前記更新命令により更新された内容が前記特定の内容である場合に実行され、前記制御移行命令のオペランドを、前記命令列コンパイル部により最適化された前記命令列のアドレスに書換える命令を生成する
請求項1記載の最適化コンパイラ。 - 前記対象プログラムの各変数には、前記対象プログラムのうち、当該変数の内容を読み書きする命令の実行が許可される読み書き許可範囲を示す属性が定められており、
前記更新命令検出部は、各変数の前記読み書き許可範囲から、当該変数の更新命令を検出し、
前記命令列検出部は、各変数の前記読み書き許可範囲から、当該変数の内容又は当該変数により指定される記憶領域の内容に応じて異なる処理を行う命令列を検出する
請求項1記載の最適化コンパイラ。 - 前記更新命令検出部は、前記対象プログラムの各変数について、当該変数の読み書き許可範囲から、当該変数又は当該変数により指定される記憶領域の全ての更新命令を検出し、
前記更新命令検出部により当該変数又は当該変数により指定される記憶領域の全ての更新命令が検出された場合において、
前記命令列コンパイル部は、前記命令列検出部が検出した前記命令列を、当該変数の内容又は当該記憶領域の内容が前記特定の内容である場合の処理に最適化してコンパイルした特殊化命令列と、当該命令列を、当該処理に最適化せずにコンパイルした通常命令列とを生成し、
前記設定命令生成部は、前記更新命令検出部により検出された各更新命令について、当該更新命令から前記制御移行命令までの間に実行される範囲に、当該更新命令により更新された内容が前記特定の内容である場合には、前記移行先アドレスを前記特殊化命令列のアドレスに設定し、当該更新命令により更新された内容が前記特定の内容でない場合には、前記移行先アドレスを前記通常命令列のアドレスに設定する命令を、前記設定命令として生成する
請求項4記載の最適化コンパイラ。 - 前記設定命令生成部は、更に、変数の内容又は変数により指定される記憶領域の内容を当該変数の前記読み書き許可範囲外から書換えるリフレクションメソッド内に、各制御移行命令の移行先アドレスを前記通常命令列に設定する設定命令を生成する
請求項5記載の最適化コンパイラ。 - 前記命令列検出部が検出した前記命令列を、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合の処理に最適化した場合に、当該処理に最適化せずにコンパイルした場合と比較して、短縮される実行時間の見積を算出し、算出した当該実行時間の見積に、当該命令列の実行頻度の見積を乗じることにより、最適化の効果を算出する最適化効果算出部と、
前記設定命令を生成した場合に当該設定命令に要する処理時間の見積を算出し、算出した当該処理時間の見積に、当該設定命令の実行頻度の見積を乗じることにより、最適化のオーバヘッドを算出する最適化オーバヘッド算出部と
を更に備え、
前記設定命令生成部は、各命令列についての前記最適化の効果の合計が、各設定命令についての前記最適化のオーバヘッドの合計を超える場合に設定命令を生成する
請求項1記載の最適化コンパイラ。 - 前記最適化効果算出部は、前記命令列検出部が検出した命令列において、前記変数又は前記記憶領域の内容を読み出す命令より先に実行される範囲に、当該変数又は当該記憶領域の内容を変更し得る命令が含まれない場合に、当該変数又は当該記憶領域の内容をメモリから読み出す命令を削除することにより短縮される実行時間の見積を算出する
請求項7記載の最適化コンパイラ。 - 前記対象プログラムのプログラマは、前記対象プログラムにおける各変数に、当該変数の内容が他のスレッドの処理により更新され得ることを示すボラタイル属性を定めることができ、
前記最適化効果算出部は、前記更新命令により更新される前記変数又は前記更新命令により更新される前記記憶領域を指定する変数に、前記ボラタイル属性が定められていない場合に、前記命令列検出部が検出した命令列から当該変数の内容又は当該記憶領域の内容をメモリから読み出す命令を削除することにより短縮される実行時間の見積を算出する
請求項7記載の最適化コンパイラ。 - 前記対象プログラムは、オブジェクト指向プログラム言語で記述されており、
前記命令列は、オブジェクトのメソッドであり、
前記命令列コンパイル部は、前記対象プログラムにおいて所定の変数又は記憶領域の更新命令がオブジェクトのコンストラクタのみにおいて検出された場合に、当該変数又は記憶領域の内容に応じて異なる処理を行う命令列を、当該変数又は記憶領域の内容が特定の内容である場合の処理に最適化してコンパイルする
請求項1記載の最適化コンパイラ。 - 前記対象プログラムは、オブジェクト指向プログラミング言語により記述されており、
前記更新命令検出部は、前記更新命令として、オブジェクトのメンバー変数の内容又はメンバー変数により指定される記憶領域の内容を更新する命令を検出し、
前記命令列検出部は、メソッド呼び出し命令により呼び出されて実行され、前記メンバー変数の内容又は前記メンバー変数により指定される記憶領域の内容に応じて異なる処理を行うメソッドを、前記命令列として検出し、
前記命令列コンパイル部は、前記命令列検出部により検出されたメソッドを、メンバー変数の内容又はメンバー変数により指定される記憶領域の内容が前記特定の内容である場合の処理に最適化してコンパイルし、
前記設定命令生成部は、前記設定命令として、前記更新命令により更新された内容が前記特定の内容である場合に実行され、前記メソッド呼出命令による呼出先アドレスを、前記命令列コンパイル部により最適化されたメソッドのアドレスに設定する命令を生成する
請求項1記載の最適化コンパイラ。 - 最適化の対象プログラムをコンピュータにより最適化するコンパイル方法であって、
前記コンピュータにより、
前記対象プログラムにおいて、変数の内容又は変数により指定される記憶領域の内容を更新する更新命令を検出する更新命令検出段階と、
前記対象プログラムにおいて、他の命令列に制御を移す制御移行命令により制御が移行されて、前記変数の内容又は前記記憶領域の内容に応じて異なる処理を行う命令列を検出する命令列検出段階と、
検出した当該命令列を、前記変数の内容又は前記記憶領域の内容が予め定められた特定の内容である場合の処理に最適化してコンパイルする命令列コンパイル段階と、
前記対象プログラムにおける、前記更新命令から前記制御移行命令までの間に、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合に実行され、前記制御移行命令の移行先アドレスを、前記命令列コンパイル段階において最適化された前記命令列のアドレスに設定する設定命令を生成する設定命令生成段階と
を備えるコンパイル方法。 - 最適化の対象プログラムをコンピュータにより最適化させるコンパイルプログラムであって、
前記コンピュータを、
前記対象プログラムにおいて、変数の内容又は変数により指定される記憶領域の内容を更新する更新命令を検出する更新命令検出部と、
前記対象プログラムにおいて、他の命令列に制御を移す制御移行命令により制御が移行されて、前記変数の内容又は前記記憶領域の内容に応じて異なる処理を行う命令列を検出する命令列検出部と、
検出した当該命令列を、前記変数の内容又は前記記憶領域の内容が予め定められた特定の内容である場合の処理に最適化してコンパイルする命令列コンパイル部と、
前記対象プログラムにおける、前記更新命令から前記制御移行命令までの間に、前記変数の内容又は前記記憶領域の内容が前記特定の内容である場合に実行され、前記制御移行命令の移行先アドレスを、前記命令列コンパイル部により最適化された前記命令列のアドレスに設定する設定命令を生成する設定命令生成部と
して機能させるコンパイルプログラム。 - 請求項13記載のコンパイルプログラムを記録した記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004019506A JP4093484B2 (ja) | 2004-01-28 | 2004-01-28 | コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 |
US11/045,923 US7409678B2 (en) | 2004-01-28 | 2005-01-28 | Compiler, compilation and storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004019506A JP4093484B2 (ja) | 2004-01-28 | 2004-01-28 | コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005215830A true JP2005215830A (ja) | 2005-08-11 |
JP4093484B2 JP4093484B2 (ja) | 2008-06-04 |
Family
ID=34903698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004019506A Expired - Fee Related JP4093484B2 (ja) | 2004-01-28 | 2004-01-28 | コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4093484B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007141153A (ja) * | 2005-11-22 | 2007-06-07 | Hitachi Software Eng Co Ltd | インタプリタ |
JP2009110299A (ja) * | 2007-10-30 | 2009-05-21 | Internatl Business Mach Corp <Ibm> | プログラムを最適化するコンパイラ |
JP2011065220A (ja) * | 2009-09-15 | 2011-03-31 | Internatl Business Mach Corp <Ibm> | コンパイラ・プログラム、コンパイル方法及びコンピュータ・システム |
WO2011058946A1 (ja) * | 2009-11-10 | 2011-05-19 | 株式会社日立製作所 | 実行命令数計測方法、実行クロック数計測方法及び計算機システム |
US9027008B2 (en) | 2012-04-25 | 2015-05-05 | International Business Machines Corporation | Method, computer, and computer program for speculatively optimizing code |
US9921858B2 (en) | 2014-09-16 | 2018-03-20 | International Business Machines Corporation | Apparatus and method for realizing runtime system for programming language |
CN110244954A (zh) * | 2019-05-22 | 2019-09-17 | 平安国际智慧城市科技股份有限公司 | 一种应用程序的编译方法及设备 |
CN110333893A (zh) * | 2019-06-28 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 应用程序的修复方法、装置、设备和存储介质 |
-
2004
- 2004-01-28 JP JP2004019506A patent/JP4093484B2/ja not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007141153A (ja) * | 2005-11-22 | 2007-06-07 | Hitachi Software Eng Co Ltd | インタプリタ |
JP2009110299A (ja) * | 2007-10-30 | 2009-05-21 | Internatl Business Mach Corp <Ibm> | プログラムを最適化するコンパイラ |
JP2011065220A (ja) * | 2009-09-15 | 2011-03-31 | Internatl Business Mach Corp <Ibm> | コンパイラ・プログラム、コンパイル方法及びコンピュータ・システム |
WO2011058946A1 (ja) * | 2009-11-10 | 2011-05-19 | 株式会社日立製作所 | 実行命令数計測方法、実行クロック数計測方法及び計算機システム |
JP2011103026A (ja) * | 2009-11-10 | 2011-05-26 | Hitachi Ltd | 実行命令数計測方法、実行クロック数計測方法及び計算機システム |
US9027008B2 (en) | 2012-04-25 | 2015-05-05 | International Business Machines Corporation | Method, computer, and computer program for speculatively optimizing code |
US9921858B2 (en) | 2014-09-16 | 2018-03-20 | International Business Machines Corporation | Apparatus and method for realizing runtime system for programming language |
US10331465B2 (en) | 2014-09-16 | 2019-06-25 | International Business Machines Corporation | Apparatus and method for realizing runtime system for programming language |
US10922107B2 (en) | 2014-09-16 | 2021-02-16 | International Business Machines Corporation | Apparatus and method for realizing runtime system for programming language |
CN110244954A (zh) * | 2019-05-22 | 2019-09-17 | 平安国际智慧城市科技股份有限公司 | 一种应用程序的编译方法及设备 |
CN110244954B (zh) * | 2019-05-22 | 2022-12-09 | 深圳赛安特技术服务有限公司 | 一种应用程序的编译方法及设备 |
CN110333893A (zh) * | 2019-06-28 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 应用程序的修复方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4093484B2 (ja) | 2008-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7409678B2 (en) | Compiler, compilation and storage | |
US6721944B2 (en) | Marking memory elements based upon usage of accessed information during speculative execution | |
EP4099153B1 (en) | Extending a virtual machine instruction set architecture | |
KR102332209B1 (ko) | 2개의 명령어 세트 아키텍처들에 따라 컴파일링된 애플리케이션 코드의 실행을 위한 시스템 및 방법 | |
US8627281B2 (en) | Method, computer program and computer system for converting source code written in dynamically typed language into target code written in statically typed language and executing target code | |
US7185327B2 (en) | System and method for optimizing operations via dataflow analysis | |
US6353881B1 (en) | Supporting space-time dimensional program execution by selectively versioning memory updates | |
US20100095286A1 (en) | Register reduction and liveness analysis techniques for program code | |
KR20110136749A (ko) | 효율적인 동적 이진 변환을 위한 레지스터 매핑 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
JP2010176688A (ja) | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 | |
US8291393B2 (en) | Just-in-time compiler support for interruptible code | |
JP2012128628A (ja) | プログラムの最適化装置、最適化方法および最適化プログラム | |
JP2000347876A (ja) | スタック・スロット割当て方法および装置 | |
JP4086791B2 (ja) | コンパイラプログラム、動的コンパイラプログラム、再現コンパイラプログラム、再現コンパイラ、コンパイル方法、及び記録媒体 | |
US20030192035A1 (en) | Systems and methods for implementing efficient execution transfers between successive translations of stack-based program code in a virtual machine environment | |
KR100577366B1 (ko) | 이종의 자바 메소드를 실행하는 방법 및 장치 | |
JP5845221B2 (ja) | 高速パッチベースメソッドコール | |
US20030018826A1 (en) | Facilitating efficient join operations between a head thread and a speculative thread | |
KR100931460B1 (ko) | 단일 스레드 응용을 지원하기 위한 시간-멀티플렉스된스펙큘레이티브 멀티 스레딩 | |
WO2001093029A2 (en) | Speculative program execution with value prediction | |
JP4093484B2 (ja) | コンパイラ、コンパイル方法、コンパイルプログラム、及び記録媒体 | |
JP2004362216A (ja) | コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体 | |
US8589899B2 (en) | Optimization system, optimization method, and compiler program | |
US6925636B2 (en) | Method and apparatus for refining an alias set of address taken variables | |
JPH10133884A (ja) | 推測的なコードを含むプログラミング・コードを実行する方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080226 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20080228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080229 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |