JP4640684B2 - プログラムコード変換方法 - Google Patents
プログラムコード変換方法 Download PDFInfo
- Publication number
- JP4640684B2 JP4640684B2 JP2010094371A JP2010094371A JP4640684B2 JP 4640684 B2 JP4640684 B2 JP 4640684B2 JP 2010094371 A JP2010094371 A JP 2010094371A JP 2010094371 A JP2010094371 A JP 2010094371A JP 4640684 B2 JP4640684 B2 JP 4640684B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- computer
- program code
- objects
- code
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
表現オブジェクトを生成するコンピュータ実施ステップであって、各表現オブジェクトが、プログラム中に生じる異なるサブジェクトコード要素を表し、直接的に、又は他の表現オブジェクトからの参照を介して間接的に関係するレジスタオブジェクトから参照されるコンピュータ実施ステップとを含む。
サブジェクトコードの要素は、サブジェクトコード命令の演算又は副次演算である。各サブジェクトコード命令はこのような要素をいくつか含むこともでき、したがって、いくつかの表現オブジェクトを生成して、単一のサブジェクトコード命令を表すこともできる。
(i)プログラムコードによって生成されることになる可変値を保持するための複数のレジスタオブジェクトを生成すること、ならびに
(ii)固定値、及び/又は前記固定値と前記プログラムコードに従った前記可変値との関係を表す、複数の表現オブジェクトを生成することを含み、
前記オブジェクトは、すべてのレジスタオブジェクトをネットワークの最下部の基本ルート又はツリートランクのレベルに有する分岐したツリーのようなネットワークに構成され、レジスタオブジェクトは他のどのレジスタオブジェクトにも供給されない。
中間表現を形成するときは、中間表現によって表されているサブジェクトプロセッサの状況(例えばそのレジスタ又はメモリ空間の状況)の表現を含めることが必要である。本発明ではこれは、抽象レジスタを作成することにより、特に効率的な方式で行われる。
(i)プログラムコードによって生成されることになる可変値を保持するための複数のレジスタオブジェクトを生成すること、ならびに
(ii)固定値、及び/又は前記固定値と前記プログラムコードに従った前記可変値との関係を表す、複数の表現オブジェクトを生成することを含み、
少なくとも1つの可変サイズのレジスタが複数のレジスタオブジェクトによって表され、可変サイズのレジスタの可能な各サイズにつき1つのレジスタオブジェクトが提供される。
1つの又はそれぞれの可変サイズのプロセッサレジスタを表す、関連する抽象レジスタオブジェクトのセットを生成するコンピュータ実施ステップであって、このセットが可変サイズの各レジスタの可能な各幅につき1つの抽象レジスタを含むコンピュータ実施ステップと、
可変サイズのレジスタへのあるフィールド幅の書込み動作ごとに、同じ幅の抽象レジスタに書き込むコンピュータ実施ステップと、
どの抽象レジスタが有効データを含むかの記録を保持するコンピュータ実施ステップであって、この記録が書込み動作ごとに更新されるコンピュータ実施ステップと、
有効データが前記異なるサイズの抽象レジスタのセットのうちの1つ以上あってそれらを可変サイズのレジスタに対して行われる同じ読取り動作と同じ効果をもたらすように結合しなければならないかどうかを、所与のフィールド幅の書込み動作ごとに前記記録から判定するコンピュータ実施ステップと、
a)そのように結合が必要とされないと判定された場合は、適切なレジスタから直接に読み取り、あるいは
b)複数のレジスタからのデータをそのように結合しなければならないと判定された場合は、それらのレジスタの内容を結合するコンピュータ実施ステップを含む。
i)アクセスに必要とされるデータが1つの有効抽象レジスタ内に完全にある場合は、そのレジスタだけがアクセスされる。
ii)アクセスに必要とされるデータが複数の有効抽象レジスタ内にある場合は、それらの有効抽象レジスタからデータが結合されて、アクセスが行われる。
a)前記抽象レジスタのうち1つだけに有効データがあるときは、そのレジスタがアクセスされる。
b)アクセスの幅に対応するサイズのレジスタ中に有効データがあり、それよりも小さいどのレジスタ中にも有効データがない場合は、そのアクセスの幅にサイズが対応するそのレジスタだけがアクセスされる。
c)有効データを含むレジスタが、アクセスの幅に対応するサイズのレジスタよりも長い場合は、有効データを含むレジスタのうち最小のレジスタがアクセスされる。
a)読取り動作の幅に対応するか又はそれよりも小さいサイズの2つ又はそれ以上のレジスタ中に有効データがある場合は、これらの各レジスタからのデータが結合される。
b)読取り動作のサイズに対応するサイズのレジスタ中にデータがなく、より大きいレジスタ及びより小さいレジスタ中にデータがある場合は、これらの各レジスタからのデータが結合される。
d0=((d0+x)&0xff)|(d0&0xffffff00)
この式は、ターゲットプロセッサレジスタ上で32ビット追加を行い、ボトム8ビットを抽出し、次いでトップ24ビットをそれらの元の値に復元する。
i)コードのBasic Blockは、代替かつ未使用の入口条件を有することができる。これは、変換を行う時に検出することができる。
ii)コードのBasic Blockは、代替かつ未使用の可能な効果又は機能を有することができる。一般に、これは、変換されたコードが実行されるときにだけ検出可能となる。
本発明の第3の態様によれば、コンピュータプログラムコードの中間表現を生成する方法が提供され、この方法は、
サブジェクトコードの所与の部分を最初に変換する際に、プログラムコードのその部分を優勢な条件セットで実行するのに必要な中間表現だけを生成及び記憶するコンピュータ実施ステップと、
サブジェクトコードの同じ部分が後で入力されたときは常に、サブジェクトコードのその部分のための中間表現が後続の条件に対して以前に生成及び記憶されたかどうかを判定し、そのような中間表現が以前に生成されていない場合は、サブジェクトコードの前記部分を前記後続の条件で実行するのに必要な追加の中間表現を生成するコンピュータ実施ステップとを含む。
(i)プログラムコードによって生成されることになる可変値を保持するための複数のレジスタオブジェクトを生成すること、ならびに
(ii)固定値、及び/又は前記固定値と前記プログラムコードに従った前記可変値との関係を表す、複数の表現オブジェクトを生成することを含み、前記中間表現は、コンピュータコードのブロックに対して生成及び記憶され、同じコードブロックが後で再入力された場合には後で再利用され、前記第1のコンピュータプログラムコードの少なくとも1ブロックが、代替の未使用入口条件又は効果又は機能を有することができ、前記中間表現は、プログラムコードのそのブロックをその時の優勢な条件で実行するのに必要なとき、最初にだけ生成及び記憶される。
各IR Blockに対応するターゲットコードを記憶するコンピュータ実施ステップと、
プログラムが所与の入口条件に対するBasic Blockの実行を必要とするときに、
a)その所与の入口条件に対するそのBasic Blockを表す記憶済みターゲットコードがある場合は、前記記憶済みターゲットコードを使用し、あるいは
b)その所与の入口条件に対するそのBasic Blockを表す記憶済みターゲットコードがない場合は、その所与の入口条件に対するそのBasic Blockを表す別のIR Blockを生成するコンピュータ実施ステップを含む。
複数の可能な効果又は機能を有する特定のサブジェクトコード命令の第1の反復時に、その反復で必要とされる特定の機能だけを表す特殊ケース中間表現を生成及び記憶するコンピュータ実施ステップと、同じサブジェクトコード命令の後続の各反復で、前記後続の反復で必要とされる機能に対して特殊ケース中間表現が生成されているかどうかを判定し、そのような特殊ケース中間表現が以前に生成されていない場合に、その機能特有の追加の特殊ケース中間表現を生成するコンピュータ実施ステップとを含むことが好ましい。
(a)前記第1のコンピュータプログラムコードのブロックの中間表現を生成することと、
(b)前記中間表現から前記第2のコンピュータプログラムコードのブロックを生成することと、
(c)第2コンピュータプログラムコードの前記ブロックを前記第2のプログラム可能なマシン上で実行することと、
(d)前記第2のプログラム可能なマシン上の第1のコンピュータプログラムコードのエミュレートされる現在の実行のために必要とされる、少なくとも第1のコンピュータプログラムコードのブロックについてステップa〜cをリアルタイムで繰り返すこと、
とを含む。
Claims (13)
- 複数の種々の幅において前記プログラムコードによってアドレス可能である少なくとも1つの可変サイズのレジスタを含むレジスタのセットを有する第1のコンピュータのために書かれたプログラムコードをエミュレートして実行可能な第2のコンピュータであって、
メモリと、
前記第1のコンピュータのために書かれたプログラムコードをエミュレートして実行可能なプロセッサであって、下記手順によって前記プログラムコードの中間表現をメモリ内に生成するように操作可能である、前記プロセッサと、
を備えており、
前記手順は、
前記プログラムコードによって参照される場合に前記第1のコンピュータのレジスタを表す複数のレジスタオブジェクトを生成すること、
前記レジスタオブジェクトの関連付けられたセットによって、前記第1のコンピュータの少なくとも1つの可変サイズのレジスタを表すことであって、前記レジスタオブジェクトの1つは、前記プログラムコードによって参照される場合に前記可変サイズのレジスタの各あり得る幅を提供する、前記表すこと
を含み、
前記手順は表現オブジェクトを前記コンピュータに生成させることをさらに含み、前記プログラムコードの要素が前記プログラムコード中に生じる場合に各表現オブジェクトは前記プログラムコードの個々の演算子又はオペランドを表し、各表現オブジェクトは、直接的に又は前記表現オブジェクトのうちの他の表現オブジェクトからの参照を介して間接的に関係する1以上の前記レジスタオブジェクトによって参照される、前記第2のコンピュータ。 - 特定の幅での前記可変サイズのレジスタに対する書込み命令が前記適切な幅に対応する前記レジスタオブジェクトに書込むことみ、そして、どのレジスタオブジェクトは有効データを含むかのレコードを維持することによって、前記中間表現において表される、請求項1に記載の第2のコンピュータ。
- 前記可変サイズのレジスタからの読込み命令が前記可変サイズのレジスタから読込む場合に、前記同じ効果をもたらすように組み合わされなければならない複数の対応するレジスタオブジェクト中に有効データがあるかどうかを前記レコードから判定すること、
そのような組み合わせが必要でないと判定された場合は、前記適切なレジスタオブジェクトから読込むこと、
そのような組み合わせが必要であると判定された場合は、適切なレジスタオブジェクトの内容を組み合わせて読取り値を提供すること
によって前記中間表現に表される、請求項1又は2に記載の第2のコンピュータ。 - 第1のコンピュータのために書かれたプログラムコードをエミュレートして実行可能な第2のコンピュータであって、前記プログラムコードは複数の種々の幅において前記プログラムコードによってアドレス可能である少なくとも1つの可変サイズのレジスタを含むレジスタのセットを参照し、前記第2のコンピュータが下記手順によって前記プログラムコードの中間表現をメモリ内に生成するように操作可能であり、
前記手順は、
前記プログラムコードによって参照される場合に前記第1のコンピュータのレジスタを表す複数のレジスタオブジェクトを生成すること、
関連付けられたレジスタオブジェクトの少なくとも1つのセットを生成することであって、前記レジスタオブジェクトの各セットは、可変サイズのレジスタの個々の1つを表し、該セットは、前記個々の可変サイズのレジスタの各あり得る幅についての1つのレジスタオブジェクトを含む、前記生成すること
を含み、
前記手順は
前記可変サイズのレジスタに対する或るフィールドの幅の各書込み命令について、前記同じ幅の前記レジスタオブジェクトを書き込むこと、
レジスタオブジェクトが有効データを含むレコードを維持すること、
前記同じ読込み命令が可変サイズのレジスタに応じて実行される場合に同じ効果をもたらすために、所与のフィールド幅の各読込み命令について、組み合わされなければならない前記レジスタオブジェクトの複数において有効データがあるかどうかを前記レコードから判定すること、
そのような組み合わせが必要でないと判定された場合は、前記適切なレジスタオブジェクトから読込むこと、
そのような組み合わせが必要であると判定された場合は、前記適切なレジスタオブジェクトの内容を組み合わせるステップと
を含む、前記第2のコンピュータ。 - 前記判定することにおいて、そのような組み合わせが必要であるかを判定することが、種々のサイズのレジスタオブジェクトの各セットに関連して以下の条件、
すなわち
アクセスに必要とされるデータが1つの有効レジスタオブジェクト内に完全にある場合は、そのレジスタオブジェクトだけがアクセスされ、
アクセスのために必要とされるデータが複数の有効レジスタオブジェクト内にある場合は、データは、前記アクセスを行うためにそれらの有効レジスタオブジェクトから組み合わされる、
に従って判定される、請求項4に記載の第2のコンピュータ。 - 前記手順が、表現オブジェクトを生成することをさらに含み、各表現オブジェクトが前記プログラムコード中に生じる場合に各表現オブジェクトは前記プログラムコードの種々の演算子又はオペランドを表し、各表現オブジェクトは、直接的に又は前記表現オブジェクトのうちの他の表現オブジェクトからの参照を介して間接的に関係する1つのレジスタオブジェクトによって参照される、請求項4又は5に記載の第2のコンピュータ。
- 第1のコンピュータのために書かれたプログラムコードをエミュレートして実行可能な第2のコンピュータであって、
下記手順によって、複数の種々の幅においてプログラムコードによってアドレス可能である少なくとも1つの可変サイズのレジスタを含むレジスタを参照するプログラムコードの中間表現をメモリ内に生成するように操作可能であり、
前記手順は、
前記プログラムコード中で参照される場合にレジスタを表す複数のレジスタオブジェクトを生成すること、
前記複数のレジスタオブジェクトによって、少なくとも1つの可変サイズのレジスタを表すことであって、前記プログラムコードにおいて参照される場合に1つのレジスタオブジェクトは前記可変サイズのレジスタの各あり得るサイズについて提供される、前記表すことと
を含み、
前記手順は表現オブジェクトを前記コンピュータに生成させることをさらに含み、前記プログラムコードの要素が前記プログラム中に生じる場合に各表現オブジェクトは前記プログラムコードの個々の演算子又はオペランドを表し、各表現オブジェクトは、直接的に又は前記表現オブジェクトのうちの他の表現オブジェクトからの参照を介して間接的に関係する1以上の前記レジスタオブジェクトによって参照される、前記第2のコンピュータ。 - 前記可変サイズのレジスタに対する前記プログラム中の書込み命令に応答して、前記手順は、前記適切なサイズに対応する前記レジスタオブジェクトに書き込むこと及びどのレジスタオブジェクトが有効データを含むかのレコードを維持することによって前記中間表現において前記書込み命令を表すことを含む、請求項7に記載の第2のコンピュータ。
- 前記可変サイズのレジスタからの前記プログラムコード中の読込み命令に応答して、前記手順は、前記可変サイズのレジスタから読込む場合に、前記同じ効果をもたらすように組み合わされなければならない複数の対応するレジスタオブジェクト中に有効データがあるかどうかを前記レコードから判定し、
そのような組み合わせが必要でないと判定された場合は、前記適切なレジスタオブジェクトから読込み、
そのような組み合わせが必要であると判定された場合は、適切なレジスタオブジェクトの内容を組み合わせて読取り値を提供する、請求項7又は8に記載の第2のコンピュータ。 - 第1のコンピュータのために書かれたプログラムコードをエミュレートして実行可能な第2のコンピュータであって、前記プログラムコードは複数の種々の幅において前記プログラムコードによってアドレス可能である少なくとも1つの可変サイズのレジスタを含むレジスタのセットを参照し、前記第2のコンピュータが下記手順によって前記プログラムコードの中間表現をメモリ内に生成するように操作可能であり、
前記手順は、
前記可変サイズのレジスタに対する或るフィールドの幅の各書込み命令について、前記同じ幅の前記レジスタオブジェクトを書き込むこと、
レジスタオブジェクトが有効データを含むレコードを維持すること、
所与のフィールド幅の各読込み命令について、組み合わされなければならない前記レジスタオブジェクトの複数において有効データがあるかどうかを前記レコードから判定すること、
そのような組み合わせが必要でないと判定された場合は、前記適切なレジスタオブジェクトから読込むこと、
そのような組み合わせが必要であると判定された場合は、前記適切なレジスタオブジェクトの内容を組み合わせること
を含む、前記第2のコンピュータ。 - 前記判定することにおいて、そのような組み合わせが必要であるかを判定することが、種々のサイズのレジスタオブジェクトの各セットに関連して以下の条件、
すなわち
アクセスに必要とされるデータが1つの有効レジスタオブジェクト内に完全にある場合は、そのレジスタオブジェクトだけがアクセスされ、
アクセスのために必要とされるデータが複数の有効レジスタオブジェクト内にある場合は、データは、前記アクセスを行うためにそれらの有効レジスタオブジェクトから組み合わされる、
に従って判定される、請求項10に記載の第2のコンピュータ。 - 前記手順が、表現オブジェクトを生成することをさらに含み、各表現オブジェクトが前記プログラム中に生じる場合に各表現オブジェクトは前記プログラムコードの種々の演算子又はオペランドを表し、各表現オブジェクトは、直接的に又は前記表現オブジェクトのうちの他の表現オブジェクトからの参照を介して間接的に関係する1つのレジスタオブジェクトによって参照される、請求項10又は11に記載の第2のコンピュータ。
- 下記手順によってサブジェクトコードをターゲットコードに変換するために操作可能なコンピュータであって、
前記手順は、
(a)少なくとも1つの可変サイズのレジスタを有するサブジェクトプロセッサの命令セット中で表現されるサブジェクトコードを受信することであって前記可変サイズのレジスタは、当該可変サイズのレジスタの完全長の一部又は全部をオーバーレイする複数の種々の幅のサブフィールド中のサブジェクトコードによってアクセス可能であり、前記サブジェクトコードは前記可変サイズのレジスタに関連する少なくとも書込み命令及び読込み命令を含む、前記受信すること、
(b)前記サブジェクトコードからの中間表現をメモリ内に生成することであって、
関連付けられたレジスタオブジェクトのセットを生成することであって、各レジスタオブジェクトは前記可変サイズのレジスタの種々の幅の細部フィールドを表す、前記生成すること、
前記同じ幅の前記レジスタオブジェクトに対する書込み命令として、前記可変サイズのレジスタに対する或るサブフィールド幅のサブジェクトコードにおいて各書込み命令を表すこと、そして、前記レジスタオブジェクトが有効データを含むレコードを保持することであって、当該レコードは、そのような書込み命令のそれぞれに応じて更新される、前記保持すること、
前記読込命令が前記サブジェクトコード中の前記可変サイズのレジスタ上で実行される場合に、前記同じ効果をもたらすように組み合わされなければならないレジスタオブジェクトの前記複数の関連付けられたセット中の有効データがあることを前記レコードから判定すること、そして、
(i)そのような組み合わせが必要でないと判定された場合は、適切なレジスタオブジェクトから直接に読み取ること、
(ii)そのような組み合わせが必要であると判定された場合は、適切なレジスタオブジェクトの内容を組み合わせること
によって複数のレジスタオブジェクトからの読込み命令として、実行される前記可変サイズのレジスタからの或るサブフィールド幅の前記サブジェクトコードにおいて各読込み命令を表すこと
を含む、前記生成すること、
(c)ターゲットプロセッサの命令セット中に表現されるターゲットコードに前記中間表現を変換することであって、前記決定されたレジスタオブジェクトを前記ターゲットプロセッサのレジスタに割り当てること、前記中間表現中に定義された書込み命令及び読取り命令に従い、前記割り当てられたターゲットレジスタに書込み、且つそれから読込まれるターゲットコード命令を生成することを含む、前記変換すること
を含む、前記コンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB9822075.9A GB9822075D0 (en) | 1998-10-10 | 1998-10-10 | Program code conversion |
US11595299P | 1999-01-14 | 1999-01-14 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000576360A Division JP4573189B2 (ja) | 1998-10-10 | 1999-10-11 | プログラムコード変換方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010198628A JP2010198628A (ja) | 2010-09-09 |
JP4640684B2 true JP4640684B2 (ja) | 2011-03-02 |
Family
ID=26314485
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000576360A Expired - Fee Related JP4573189B2 (ja) | 1998-10-10 | 1999-10-11 | プログラムコード変換方法 |
JP2010094370A Expired - Lifetime JP4640683B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
JP2010094369A Expired - Lifetime JP4709933B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
JP2010094372A Expired - Lifetime JP4640685B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
JP2010094371A Expired - Lifetime JP4640684B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000576360A Expired - Fee Related JP4573189B2 (ja) | 1998-10-10 | 1999-10-11 | プログラムコード変換方法 |
JP2010094370A Expired - Lifetime JP4640683B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
JP2010094369A Expired - Lifetime JP4709933B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
JP2010094372A Expired - Lifetime JP4640685B2 (ja) | 1998-10-10 | 2010-04-15 | プログラムコード変換方法 |
Country Status (8)
Country | Link |
---|---|
US (11) | US7426722B2 (ja) |
EP (3) | EP1380946B1 (ja) |
JP (5) | JP4573189B2 (ja) |
AT (2) | ATE293808T1 (ja) |
AU (1) | AU6211899A (ja) |
DE (2) | DE69924857T2 (ja) |
ES (1) | ES2340370T3 (ja) |
WO (1) | WO2000022521A1 (ja) |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4573189B2 (ja) * | 1998-10-10 | 2010-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムコード変換方法 |
US7058932B1 (en) * | 1999-04-19 | 2006-06-06 | Unisys Corporation | System, computer program product, and methods for emulation of computer programs |
US7353163B2 (en) * | 1999-04-27 | 2008-04-01 | Transitive Limited | Exception handling method and apparatus for use in program code conversion |
US6802056B1 (en) * | 1999-06-30 | 2004-10-05 | Microsoft Corporation | Translation and transformation of heterogeneous programs |
GB0309056D0 (en) * | 2003-04-22 | 2003-05-28 | Transitive Technologies Ltd | Block translation optimizations for program code conversion |
GB0315165D0 (en) * | 2003-05-02 | 2003-08-06 | Transitive Ltd | Improved architecture for generating intermediate representations for program code conversion |
GB2411990B (en) * | 2003-05-02 | 2005-11-09 | Transitive Ltd | Improved architecture for generating intermediate representations for program code conversion |
KR20060063800A (ko) * | 2003-06-18 | 2006-06-12 | 앰브릭, 인크. | 집적 회로 개발 시스템 |
US20070186076A1 (en) * | 2003-06-18 | 2007-08-09 | Jones Anthony M | Data pipeline transport system |
US7617490B2 (en) * | 2003-09-10 | 2009-11-10 | Intel Corporation | Methods and apparatus for dynamic best fit compilation of mixed mode instructions |
US20050102488A1 (en) * | 2003-11-07 | 2005-05-12 | Bullis George A. | Firmware description language for accessing firmware registers |
US7770034B2 (en) * | 2003-12-16 | 2010-08-03 | Intel Corporation | Performance monitoring based dynamic voltage and frequency scaling |
US8694802B2 (en) * | 2004-04-30 | 2014-04-08 | Apple Inc. | System and method for creating tamper-resistant code |
US7464375B2 (en) * | 2004-06-24 | 2008-12-09 | International Business Machines Corporation | Method for flattening hierarchically structured flows |
JP4846226B2 (ja) * | 2004-10-26 | 2011-12-28 | 株式会社日立ソリューションズ | 情報処理装置、情報処理方法、およびプログラム |
US7861234B1 (en) * | 2005-02-23 | 2010-12-28 | Oracle America, Inc. | System and method for binary translation to improve parameter passing |
KR101244063B1 (ko) | 2005-03-11 | 2013-03-19 | 인터내셔널 비지네스 머신즈 코포레이션 | 프로그램 코드 변환시의 실행 제어 |
GB2424092A (en) * | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
GB2424727B (en) | 2005-03-30 | 2007-08-01 | Transitive Ltd | Preparing instruction groups for a processor having a multiple issue ports |
GB2425372B (en) | 2005-04-20 | 2007-06-13 | Transitive Ltd | Method and apparatus for precise handling of exceptions during program code conversion |
US7805708B2 (en) * | 2005-05-13 | 2010-09-28 | Texas Instruments Incorporated | Automatic tool to eliminate conflict cache misses |
KR100725393B1 (ko) * | 2005-05-19 | 2007-06-07 | 삼성전자주식회사 | 자바 가상 머신에서 바이트 코드의 수행 시간을 줄이는시스템 및 방법 |
WO2006131695A1 (en) | 2005-06-04 | 2006-12-14 | Transitive Limited | Method and apparatus for combined execution of native code and target code during program code conversion |
GB2426840A (en) | 2005-06-04 | 2006-12-06 | Transitive Ltd | Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion. |
GB2427045B (en) | 2005-06-06 | 2007-11-21 | Transitive Ltd | Method and apparatus for converting program code with access coordination for a shared resource |
US7757289B2 (en) * | 2005-12-12 | 2010-07-13 | Finjan, Inc. | System and method for inspecting dynamically generated executable code |
GB0525597D0 (en) * | 2005-12-16 | 2006-01-25 | Isis Innovation | Emulation system |
US9830174B2 (en) * | 2005-12-22 | 2017-11-28 | Synopsys, Inc. | Dynamic host code generation from architecture description for fast simulation |
US7792666B2 (en) * | 2006-05-03 | 2010-09-07 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
US7813909B2 (en) * | 2006-05-03 | 2010-10-12 | Sony Computer Entertainment Inc. | Register mapping in emulation of a target system on a host system |
US7770050B2 (en) * | 2006-05-03 | 2010-08-03 | Sony Computer Entertainment Inc. | Method and apparatus for resolving clock management issues in emulation involving both interpreted and translated code |
GB2435531A (en) * | 2006-02-27 | 2007-08-29 | Sharp Kk | Control Flow Protection Mechanism |
US8751946B2 (en) * | 2006-04-05 | 2014-06-10 | International Business Machines Corporation | Enhanced display of properties for a program object |
US8812556B2 (en) * | 2006-04-06 | 2014-08-19 | International Business Machines Corporation | Storing modification data for recreating modifications |
US7716653B2 (en) * | 2006-04-06 | 2010-05-11 | International Business Machines Corporation | Configurable importers and resource writers for converting data into another format |
WO2007130805A2 (en) * | 2006-05-03 | 2007-11-15 | Sony Computer Entertainment Inc. | Translation block invalidation prehints in emulation of a target system on a host system |
JP4778359B2 (ja) * | 2006-05-17 | 2011-09-21 | エヌイーシーコンピュータテクノ株式会社 | エミュレーション方法及びコンピュータシステム |
US8375368B2 (en) * | 2006-06-20 | 2013-02-12 | Google Inc. | Systems and methods for profiling an application running on a parallel-processing computer system |
US20070294675A1 (en) * | 2006-06-20 | 2007-12-20 | Transitive Limited | Method and apparatus for handling exceptions during binding to native code |
US8108844B2 (en) | 2006-06-20 | 2012-01-31 | Google Inc. | Systems and methods for dynamically choosing a processing element for a compute kernel |
US8443348B2 (en) | 2006-06-20 | 2013-05-14 | Google Inc. | Application program interface of a parallel-processing computer system that supports multiple programming languages |
US8136104B2 (en) * | 2006-06-20 | 2012-03-13 | Google Inc. | Systems and methods for determining compute kernels for an application in a parallel-processing computer system |
US8146066B2 (en) | 2006-06-20 | 2012-03-27 | Google Inc. | Systems and methods for caching compute kernels for an application running on a parallel-processing computer system |
US7814486B2 (en) * | 2006-06-20 | 2010-10-12 | Google Inc. | Multi-thread runtime system |
US8136102B2 (en) | 2006-06-20 | 2012-03-13 | Google Inc. | Systems and methods for compiling an application for a parallel-processing computer system |
US8261270B2 (en) | 2006-06-20 | 2012-09-04 | Google Inc. | Systems and methods for generating reference results using a parallel-processing computer system |
US8024708B2 (en) | 2006-06-20 | 2011-09-20 | Google Inc. | Systems and methods for debugging an application running on a parallel-processing computer system |
US8381202B2 (en) * | 2006-06-20 | 2013-02-19 | Google Inc. | Runtime system for executing an application in a parallel-processing computer system |
GB2442495B (en) | 2006-10-02 | 2009-04-01 | Transitive Ltd | Method and apparatus for handling dynamically linked function cells with respect to program code conversion |
GB2442566B (en) | 2006-10-02 | 2009-02-11 | Transitive Ltd | Computer system and method of adapting a computer system to support a register window architecture |
GB2442497B (en) | 2006-10-02 | 2010-03-31 | Transitive Ltd | Method and apparatus for administering a process filesystem with respect to program code conversion |
WO2008047351A2 (en) * | 2006-10-19 | 2008-04-24 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
GB0623276D0 (en) | 2006-11-22 | 2007-01-03 | Transitive Ltd | Memory consistency protection in a multiprocessor computing system |
US8341609B2 (en) * | 2007-01-26 | 2012-12-25 | Oracle International Corporation | Code generation in the presence of paged memory |
US8413125B2 (en) | 2007-01-26 | 2013-04-02 | Oracle International Corporation | Asynchronous dynamic compilation based on multi-session profiling to produce shared native code |
US8601452B2 (en) * | 2007-03-02 | 2013-12-03 | Oracle International Corporation | Compiler for JAVA and .NET |
GB2447968B (en) | 2007-03-30 | 2010-07-07 | Transitive Ltd | Improvements in and relating to floating point operations |
US8245202B2 (en) * | 2007-04-18 | 2012-08-14 | Sony Computer Entertainment Inc. | Processor emulation using speculative forward translation |
GB2448523B (en) | 2007-04-19 | 2009-06-17 | Transitive Ltd | Apparatus and method for handling exception signals in a computing system |
US20090122067A1 (en) * | 2007-11-13 | 2009-05-14 | Microsoft Corporation | Open fonts including human-readable fonts for compilation |
US8060356B2 (en) | 2007-12-19 | 2011-11-15 | Sony Computer Entertainment Inc. | Processor emulation using fragment level translation |
US7991915B2 (en) * | 2008-05-05 | 2011-08-02 | Sentilla Corporation | Software platform for radio network |
GB0813833D0 (en) | 2008-07-29 | 2008-09-03 | Transitive Ltd | Apparatus and method for handling page protection faults in a computing system |
US8346531B2 (en) * | 2008-11-05 | 2013-01-01 | Oracle America, Inc. | Handling mutex locks in a dynamic binary translation across heterogeneous computer systems |
EP2216695B1 (de) * | 2009-02-09 | 2013-03-27 | Siemens Aktiengesellschaft | Verfahren zum Betrieb eines Automatisierungssystems, korrespondierendes Computerprogramm und System oder Gerät, das nach dem Verfahren arbeitet |
US8276128B2 (en) * | 2009-07-14 | 2012-09-25 | Unisys Corporation | Systems, methods, and computer programs for dynamic binary translation in a master control program interpreter |
US8024374B2 (en) * | 2009-07-24 | 2011-09-20 | Oracle International Corporation | Computer object conversion using an intermediate object |
KR101247259B1 (ko) * | 2009-12-17 | 2013-04-01 | 한국전자통신연구원 | 가상화 장치 및 그 처리 방법 |
WO2012025865A1 (en) | 2010-08-24 | 2012-03-01 | Checkmarx Ltd. | Mining source code for violations of programming rules |
JP5614348B2 (ja) * | 2011-03-18 | 2014-10-29 | 富士通株式会社 | 命令処理方法、命令処理装置、及び命令処理プログラム |
US20130024674A1 (en) | 2011-07-20 | 2013-01-24 | International Business Machines Corporation | Return address optimisation for a dynamic code translator |
US8819649B2 (en) * | 2011-09-09 | 2014-08-26 | Microsoft Corporation | Profile guided just-in-time (JIT) compiler and byte code generation |
WO2013048468A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
US8600727B2 (en) * | 2011-10-11 | 2013-12-03 | Unisys Corporation | Streamlined execution of emulated code using block-based translation mode |
TW201339861A (zh) | 2012-03-30 | 2013-10-01 | Ibm | 提供較小目標編碼空間之碼轉換的方法、電腦裝置與程式產品 |
US9195442B2 (en) * | 2012-07-10 | 2015-11-24 | Oracle International Corporation | System and method for compiling lambda expression in a programming language environment |
US9262416B2 (en) | 2012-11-08 | 2016-02-16 | Microsoft Technology Licensing, Llc | Purity analysis using white list/black list analysis |
US8752021B2 (en) * | 2012-11-08 | 2014-06-10 | Concurix Corporation | Input vector analysis for memoization estimation |
RU2514142C1 (ru) * | 2012-12-25 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ повышения эффективности работы аппаратного ускорения эмуляции приложений |
US9152400B2 (en) | 2013-04-18 | 2015-10-06 | Facebook, Inc. | Eliminating redundant reference count operations in intermediate representation of script code |
US8990789B2 (en) * | 2013-04-18 | 2015-03-24 | Facebook, Inc. | Optimizing intermediate representation of script code by eliminating redundant reference count operations |
KR101462347B1 (ko) * | 2013-07-08 | 2014-12-04 | 충북대학교 산학협력단 | 가상 머신 바이너리 변환 방법 |
EP3049921A4 (en) * | 2013-09-26 | 2017-05-17 | Intel Corporation | Methods and apparatus to validate translated guest code in a dynamic binary translator |
US20160187862A1 (en) * | 2014-12-29 | 2016-06-30 | Sling Media Pvt Ltd | Systems and methods for home automation via a media device |
EP3427148B1 (en) | 2016-03-11 | 2022-01-12 | LZLabs GmbH | Load module compiler |
US10191745B2 (en) * | 2017-03-31 | 2019-01-29 | Intel Corporation | Optimized call-return and binary translation |
US11087002B2 (en) | 2017-05-10 | 2021-08-10 | Checkmarx Ltd. | Using the same query language for static and dynamic application security testing tools |
US10998937B2 (en) | 2019-04-30 | 2021-05-04 | Bank Of America Corporation | Embedded tag for resource distribution |
US11196737B2 (en) | 2019-04-30 | 2021-12-07 | Bank Of America Corporation | System for secondary authentication via contactless distribution of dynamic resources |
US11234235B2 (en) | 2019-04-30 | 2022-01-25 | Bank Of America Corporation | Resource distribution hub generation on a mobile device |
US11074055B2 (en) * | 2019-06-14 | 2021-07-27 | International Business Machines Corporation | Identification of components used in software binaries through approximate concrete execution |
WO2021225901A1 (en) * | 2020-05-04 | 2021-11-11 | Lingua Robotica, Inc. | Techniques for converting natural speech to programming code |
IL285079B2 (en) | 2020-07-28 | 2024-07-01 | Checkmarx Ltd | Discovery of exploitable routes in application software that uses third-party libraries |
WO2022265411A1 (ko) * | 2021-06-16 | 2022-12-22 | 주식회사 모레 | 프로그램의 중간표현에 대한 최적화 적용 가능성을 판단하는 방법 및 시스템 |
US11900087B1 (en) * | 2022-03-23 | 2024-02-13 | Amazon Technologies, Inc. | Application binary replatforming as a service |
WO2023248424A1 (ja) * | 2022-06-23 | 2023-12-28 | 日本電気株式会社 | 演算装置、演算方法、および、記録媒体 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US549121A (en) * | 1895-11-05 | Deflector for blast-stackers | ||
US467290A (en) * | 1892-01-19 | Paint-can | ||
US4667290A (en) * | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
JPS63245529A (ja) | 1987-03-31 | 1988-10-12 | Toshiba Corp | レジスタ退避復元装置 |
JP2958386B2 (ja) | 1988-09-30 | 1999-10-06 | 富士ゼロックス株式会社 | 計算機システム |
JPH0695309B2 (ja) | 1988-12-02 | 1994-11-24 | 日本電気株式会社 | 中間言語テキストの再利用方式 |
JP2834171B2 (ja) * | 1989-02-06 | 1998-12-09 | 株式会社日立製作所 | コンパイル方法 |
JPH0630063B2 (ja) * | 1989-02-17 | 1994-04-20 | 株式会社東芝 | マイクロプロセッサ |
JPH02236638A (ja) * | 1989-03-10 | 1990-09-19 | Hitachi Ltd | レジスタ割付け管理方式 |
US5119465A (en) * | 1989-06-19 | 1992-06-02 | Digital Equipment Corporation | System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure |
US5274820A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Method and system for eliminating operation codes from intermediate prolog instructions |
JPH03229327A (ja) * | 1990-02-05 | 1991-10-11 | Mitsubishi Electric Corp | 計算機プログラム実行方式 |
US5210837A (en) * | 1990-06-15 | 1993-05-11 | Digital Equipment Corporation | Methods and apparatus for transforming machine language program control into high-level language constructs by manipulating graphical program representations |
US5659753A (en) | 1991-02-27 | 1997-08-19 | Digital Equipment Corporation | Interface for symbol table construction in a multilanguage optimizing compiler |
IL100990A (en) * | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Multilingual optimization compiler that uses Gladi in the production of a multi-pass cipher |
JPH04316133A (ja) * | 1991-04-15 | 1992-11-06 | Nec Corp | プログラムのインタプリタ処理方式 |
JP3602857B2 (ja) * | 1991-04-23 | 2004-12-15 | 株式会社日立製作所 | 多機種対応型情報処理システム、および、方法 |
JPH0553821A (ja) * | 1991-06-17 | 1993-03-05 | Fujitsu Ltd | コンパイル処理方式 |
US5339428A (en) * | 1991-09-04 | 1994-08-16 | Digital Equipment Corporation | Compiler allocating a register to a data item used between a use and store of another data item previously allocated to the register |
US5448737A (en) * | 1992-03-17 | 1995-09-05 | International Business Machines Corporation | System and method for optimizing computer code using a compact data flow representation |
JP3450382B2 (ja) * | 1992-09-24 | 2003-09-22 | 株式会社東芝 | 画像処理装置 |
US5491821A (en) * | 1993-02-24 | 1996-02-13 | International Business Machines Corporation | Method and system for incremental processing of computer objects |
US5471633A (en) * | 1993-09-30 | 1995-11-28 | Intel Corporation | Idiom recognizer within a register alias table |
JP3276479B2 (ja) * | 1993-10-05 | 2002-04-22 | 富士通株式会社 | コンパイル方式 |
US5787285A (en) * | 1995-08-15 | 1998-07-28 | International Business Machines Corporation | Apparatus and method for optimizing applications for multiple operational environments or modes |
JPH09171467A (ja) * | 1995-12-21 | 1997-06-30 | Nec Corp | エミュレーション装置及びその方法 |
US5850554A (en) * | 1995-12-29 | 1998-12-15 | Intel Corporation | Compiler tool set for efficiently generating and easily managing multiple program versions of different types |
FR2743646B1 (fr) * | 1996-01-12 | 1998-03-06 | Sgs Thomson Microelectronics | Coprocesseur d'arithmetique modulaire comportant un circuit de division entiere |
FR2743907B1 (fr) * | 1996-01-18 | 1998-02-27 | Sgs Thomson Microelectronics | Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery |
US5930509A (en) * | 1996-01-29 | 1999-07-27 | Digital Equipment Corporation | Method and apparatus for performing binary translation |
US6226789B1 (en) | 1996-01-29 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus for data flow analysis |
US5768593A (en) * | 1996-03-22 | 1998-06-16 | Connectix Corporation | Dynamic cross-compilation system and method |
US5901317A (en) | 1996-03-25 | 1999-05-04 | Sun Microsystems, Inc. | Method and system for register allocation using multiple interference graphs |
JPH09265400A (ja) * | 1996-03-28 | 1997-10-07 | Hitachi Ltd | コンパイル最適化方式 |
US5805895A (en) * | 1996-06-09 | 1998-09-08 | Motorola, Inc. | Method and apparatus for code translation optimization |
US5901316A (en) * | 1996-07-01 | 1999-05-04 | Sun Microsystems, Inc. | Float register spill cache method, system, and computer program product |
US5832205A (en) | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5872950A (en) * | 1997-03-31 | 1999-02-16 | International Business Machines Corporation | Method and apparatus for managing register renaming including a wraparound array and an indication of rename entry ages |
US5784588A (en) * | 1997-06-20 | 1998-07-21 | Sun Microsystems, Inc. | Dependency checking apparatus employing a scoreboard for a pair of register sets having different precisions |
EP0991994A4 (en) | 1997-06-25 | 2001-11-28 | Transmeta Corp | IMPROVED MICROPROCESSOR |
US6072953A (en) * | 1997-09-30 | 2000-06-06 | International Business Machines Corporation | Apparatus and method for dynamically modifying class files during loading for execution |
US6631514B1 (en) * | 1998-01-06 | 2003-10-07 | Hewlett-Packard Development, L.P. | Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations |
FR2775369B1 (fr) * | 1998-02-26 | 2001-08-03 | Sgs Thomson Microelectronics | Procede de mise en oeuvre d'une multiplication modulaire specifique relative a la methode de montgomery |
US6820266B1 (en) * | 1998-02-27 | 2004-11-16 | Oracle International Corporation | Application code conversion architecture |
US6075942A (en) * | 1998-05-04 | 2000-06-13 | Sun Microsystems, Inc. | Encoding machine-specific optimization in generic byte code by using local variables as pseudo-registers |
US6427234B1 (en) * | 1998-06-11 | 2002-07-30 | University Of Washington | System and method for performing selective dynamic compilation using run-time information |
KR20010072477A (ko) | 1998-08-13 | 2001-07-31 | 썬 마이크로시스템즈, 인코포레이티드 | 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치 |
JP4573189B2 (ja) * | 1998-10-10 | 2010-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムコード変換方法 |
US6463582B1 (en) * | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US7353163B2 (en) * | 1999-04-27 | 2008-04-01 | Transitive Limited | Exception handling method and apparatus for use in program code conversion |
US7143401B2 (en) * | 2000-02-17 | 2006-11-28 | Elbrus International | Single-chip multiprocessor with cycle-precise program scheduling of parallel execution |
US7536682B2 (en) * | 2003-04-22 | 2009-05-19 | International Business Machines Corporation | Method and apparatus for performing interpreter optimizations during program code conversion |
US7200841B2 (en) * | 2003-04-22 | 2007-04-03 | Transitive Limited | Method and apparatus for performing lazy byteswapping optimizations during program code conversion |
US7543284B2 (en) * | 2003-04-22 | 2009-06-02 | Transitive Limited | Partial dead code elimination optimizations for program code conversion |
-
1999
- 1999-10-11 JP JP2000576360A patent/JP4573189B2/ja not_active Expired - Fee Related
- 1999-10-11 DE DE69924857T patent/DE69924857T2/de not_active Expired - Lifetime
- 1999-10-11 AT AT99949129T patent/ATE293808T1/de not_active IP Right Cessation
- 1999-10-11 ES ES03020509T patent/ES2340370T3/es not_active Expired - Lifetime
- 1999-10-11 DE DE69942011T patent/DE69942011D1/de not_active Expired - Lifetime
- 1999-10-11 AU AU62118/99A patent/AU6211899A/en not_active Abandoned
- 1999-10-11 AT AT03020509T patent/ATE457492T1/de not_active IP Right Cessation
- 1999-10-11 EP EP03020509A patent/EP1380946B1/en not_active Expired - Lifetime
- 1999-10-11 EP EP03020510A patent/EP1385090B1/en not_active Expired - Lifetime
- 1999-10-11 EP EP99949129A patent/EP1119807B1/en not_active Expired - Lifetime
- 1999-10-11 WO PCT/GB1999/003168 patent/WO2000022521A1/en active IP Right Grant
-
2001
- 2001-04-06 US US09/828,049 patent/US7426722B2/en not_active Expired - Fee Related
- 2001-04-06 US US09/827,974 patent/US7203933B2/en not_active Expired - Lifetime
- 2001-04-06 US US09/827,971 patent/US7409680B2/en not_active Expired - Fee Related
-
2002
- 2002-06-06 US US10/165,012 patent/US7356810B2/en not_active Expired - Fee Related
- 2002-06-06 US US10/164,772 patent/US7328431B2/en not_active Expired - Fee Related
- 2002-06-06 US US10/165,378 patent/US7346900B2/en not_active Expired - Fee Related
- 2002-06-06 US US10/165,457 patent/US7210133B2/en not_active Expired - Lifetime
- 2002-06-06 US US10/165,029 patent/US7421686B2/en not_active Expired - Fee Related
- 2002-06-06 US US10/164,789 patent/US7203934B2/en not_active Expired - Lifetime
-
2007
- 2007-03-27 US US11/728,723 patent/US8037461B2/en not_active Expired - Fee Related
- 2007-03-27 US US11/728,957 patent/US8006237B2/en not_active Expired - Fee Related
-
2010
- 2010-04-15 JP JP2010094370A patent/JP4640683B2/ja not_active Expired - Lifetime
- 2010-04-15 JP JP2010094369A patent/JP4709933B2/ja not_active Expired - Lifetime
- 2010-04-15 JP JP2010094372A patent/JP4640685B2/ja not_active Expired - Lifetime
- 2010-04-15 JP JP2010094371A patent/JP4640684B2/ja not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4640684B2 (ja) | プログラムコード変換方法 | |
US5577253A (en) | Analyzing inductive expressions in a multilanguage optimizing compiler | |
IL100987A (en) | Method and device for encoding | |
IL100990A (en) | Multilingual optimization compiler that uses Gladi in the production of a multi-pass cipher | |
US6658655B1 (en) | Method of executing an interpreter program | |
AU663311B2 (en) | Multilanguage optimizing compiler using templates in multiple pass code generation | |
JPH02176938A (ja) | 機械語命令最適化方式 | |
IE920608A1 (en) | Interface for symbol table construction in a multilanguage¹optimizing compiler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100924 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100924 |
|
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: 20101116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20101116 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20101116 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4640684 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131210 Year of fee payment: 3 |
|
EXPY | Cancellation because of completion of term |