JP2002508544A - 変更定数プールを備えたJavaランタイム・システム - Google Patents
変更定数プールを備えたJavaランタイム・システムInfo
- Publication number
- JP2002508544A JP2002508544A JP2000538296A JP2000538296A JP2002508544A JP 2002508544 A JP2002508544 A JP 2002508544A JP 2000538296 A JP2000538296 A JP 2000538296A JP 2000538296 A JP2000538296 A JP 2000538296A JP 2002508544 A JP2002508544 A JP 2002508544A
- Authority
- JP
- Japan
- Prior art keywords
- constant pool
- offset
- java runtime
- runtime system
- link
- 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
- 238000000034 method Methods 0.000 claims description 42
- 230000003068 static effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
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/54—Link editing before load time
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Description
・コード・ダウン・ロードおよびリンキングに関する。
、いわゆる定数プールを介する間接名前ルックアップを使って解決される。この
ような手法は、処理能力および内部資源の点で十分な資源を提供するシステムで
しか使用できない。
、有望ではない。その代わりに、解決されたクラス構造への参照を使用して、間
接指示(indirection)を回避し、定数プールの維持を避けることができる。
実現することである。
タイムの効率的リンキングを実現することである。
グラムを実行するスタック・ベースのインタープリタを備え、さらにリンク時に
のみ使用される内部情報とレイト・コード・バインディングのために予約された
外部情報とを含む変更定数プールを備え、前記内部情報がリンク後に前記変更定
数プールから除去されるJavaランタイム・システムを実現する。
43−1100カリフォルニア州マウンテン・ビュー、ガルシア・アベニュー2
550のサン・マイクロシステムズ社が開発したプログラミング言語および環境
である。用語「Java」は、同社の商標である。
およびその実施の基本的機構に精通しているものと想定する。Java言語の包括的
な提示とJVMの実施は、J.ゴスリン(Goslin)、B.ジョイ(Joy)および G.テル(Tele)の「The Java Language Specification」、ならびにT.リン ドホルム(Lindholm)およびF.エリン(Yellin)の「The Java Virtual Machi
ne Specification」、共にAddison-Wesley Publishing Co.、1996年刊、に 開示されている。しかし、本明細書でJavaCardVMと呼ぶJavaCard仮想計算機は
、サブセットと追加バイトコードだけが使用されるため、いくつかの面で異なっ
ている。
をいくつかのセクションに分ける。キャップ・ファイルは基本的に、テキスト・
セクションとデータ・セクションを含んでいる。テキスト・セクションは、クラ
ス構造、メソッド構造およびバイトコード命令を含んでいる。データ・セクショ
ンは、カードレットの静的フィールドを含んでいる。
ない全ての記号(クラス、メソッドなど)を、定数プールへのオフセットを介し
て参照する。あらゆるこのような記号について、定数プールは、ターゲット・パ
ッケージのAID、およびターゲット・パッケージ(すなわち、リンクされる対
象となるパッケージ)中でのその記号のオフセットを含んでいる。定数プールは
、インポートされた全ての記号(他のパッケージ中で定義される記号)、および
エキスポートされた全ての記号(ロードされるカードレット内で定義されアクセ
スされる記号)に対するこうしたオフセットを提供する。
ドレットを実行するのに十分な情報を提供する。カードレットのロード後、リン
カは、定数プール中をステッピングし、ターゲット・パッケージへの記号のオフ
セットをその実アドレスで置き換える。リンカは、所与のAIDによって特定の
パッケージをルックアップし、その開始アドレスを記号のオフセットに加え、こ
の情報を定数プールに戻して記憶するだけでよい。そうすると、JavaCardVMは
、解釈のため定数プールにおけるこれらのアドレスを使用することができる。し
かし、定数プール自体は、ランタイムには必要でない。実際、解釈中に記号のア
ドレスを見つけるには、追加の不必要な1つの間接指示が必要となる。さらに、
定数プールは、不必要にカードのスペースを占める。したがって、JavaSoftキャ
ップ・ファイル・フォーマットでは、リンク後に、定数プールの必要をなくすた
め、個々のセクション用のフィックスアップ・テーブルを使用する。フィックス
アップ・テーブルは、再配置を行うべきテキスト・セクション中の全ての位置を
含んでいる。リンカは、フィックスアップ・テーブル中を移動し、その位置にお
ける定数プールへのオフセットを取る。次いで、その記号のアドレスを解決し、
それをテキスト・セクションの元の位置に格納する。そうすると、インタープリ
タは、ランタイムにこれらのアドレスを直接使用することができ、したがって、
定数プールはリンク・プロセス後に除去することができる。リンク・プロセス後
にカード上に残るセクションは、テキスト・セクションとデータ・セクションだ
けである。
たオフセットとリンクすると、コンパクトなシステムが可能になる。しかし、シ
ステム・クラスの異なる実施および異なるカード上での指定された拡張を可能と
するのに十分なフレキシビリティは得られない。例えば、IBMのシステム・ク
ラスおよびJavaSoftの拡張に対して変換されたカードレットは、JavaSoftからの
システム・カードレットおよびIBMからの拡張カードレットを備えるカード上
では稼動しないと思われる。その主な理由は、個々のクラス、メソッドのオフセ
ットとインスタンスのフィールド・オフセットが実施ごとに異なっているからで
ある。
記号リンク機構によってその機能を強化するものである。
異なるセクションに分ける。テキスト・セクションは、クラス構造、メソッド構
造、およびバイトコード命令を含んでおり、データ・セクションはやはり、静的
フィールドを含んでいる。キャップ・ファイルはまた、必要な再配置情報をフィ
ックスアップ・テーブルに維持する。カードレットがリンクされるあらゆるパッ
ケージ(すなわち、ターゲット・パッケージ)に対して1つのフィックスアップ
・テーブルがある。
セクション中の再配置を行うべき位置を含んでいる。簡単なケースでは、これら
の場所も、信頼されるよく知られたターゲット・パッケージへの予め計算された
オフセットによって再配置される。この場合、リンカは、所与のターゲットAI
Dによってパッケージの開始アドレスをルックアップし、ターゲット・パッケー
ジへのオフセットを加え、テキスト・セクションの元の位置にその値を格納する
。ターゲット・パッケージへのオフセットは、フィックスアップ・テーブルに保
持することができ、またフィックスアップ・テーブルを小さくしておくためにテ
キスト・セクションの再配置アドレスに保持することもできる。オフセットによ
る再配置は、ロードされたカードレット自体内の大部分の参照に対して常に使用
することができる。コンバータは、互換性を壊すことなく、これらのオフセット
を予め計算することができる。
たオフセットによってリンクすべきではない。その代わりに、名前または識別子
を、リンク・プロセス中に、他のパッケージへの参照に使用すべきである。これ
らの名前とそれに関連する値だけを、複数のアプレットの間で共用されるパッケ
ージのカードに格納しなければならない。名前/値の対のこれらのテーブルはで
きるだけ小さくなければならないため、このキャップ・ファイル・フォーマット
では、クラス・ファイル要素の命名には制限があるが、それでも様々な仕様をベ
ンダ特有に実施する可能性が与えられる。
い。
ソッドを見つけ出す。これらのインデックスと仮想メソッド・テーブルは、Java
Card環境が仮想メソッドの標準Javaレイト・コード・バインディングをサポート
しようとする場合、カード上で解決する必要がある。メソッド・テーブルの構築
中に、リンカは、あるメソッドが、メソッド・テーブル中の他のメソッドを継承
するかどうかを判断しなければならない。これらのメソッドは異なるカードレッ
ト中で定義されている可能性があるため、2つのメソッドが同じタイプを有して
いるかどうかを判断するのに、メソッドに対する大域命名方式を導入しなければ
ならない。仮想メソッド・コールに対するレイト(late)・コード・バインディ
ング(ダイナミック・リンキングとも言う)では、仮想メソッドを解決し命名す
るために、大域命名方式、およびカード上の追加資源を必要とするが、本発明の
キャップ・ファイル・フォーマットは、これをサポートしない。しかし、この制
限があっても、コア・パッケージおよび拡張のベンダ特有の実施のための十分な
余地が残る。プログラマは自由に、私用または静的メソッドおよびクラスを追加
することができる。非私用インスタンス・メソッドが継承されず、最終的なもの
と宣言されていない場合、プログラマは、非私用インスタンス・メソッドも追加
することができる。コンバータは次いで、これらのメソッドに対するコールを直
接呼出しで置き換えることができる。
で定義されず、異なるベンダの実施ごとに変わるものである。したがって、フィ
ールド・オフセットのバインドは、CAPファイル・フォーマットの提案で対処
しなければならない。リンク・プロセスに関するフィールドの使用法は、以下の
3つのカテゴリに分けられる。
格納用(containing)カードレット内で定義されているフィールドを参照付け(
reference)する。そうすると、このフィールドのオフセットは、コンバータに よって予め計算でき、ロード・プロセス中にリンクする必要はない。オブジェク
ト・クラスが何らフィールド宣言を含んでいないという取り決めがある場合、多
くのフィールド・アクセスが、このカテゴリに属する。
ラスのフィールドに対するアクセス 別々のパッケージ内で定義されるクラスのサブクラス分けを可能にするために
、このケースを、キャップ・ファイル・フォーマットでサポートしなければなら
ない。コンバータは、カードレット外部のスーパークラスのインスタンス・サイ
ズに対するフィールドのオフセットを計算し、この値をキャップ・ファイルに格
納することができる。リンク・プロセス中に、フィールドの実際のオフセットを
、ベース・クラスのサイズに基づいて再計算しなければならない。カードレット
内部クラスのインスタンス・サイズの要素についても同じことを行うことができ
る。
ィールドに対するアクセス インスタンス・フィールドが公用であると宣言されることはほとんどないが、
保護されていると宣言されることはしばしばある。保護されたフィールドへのア
クセスは常に、保護されたセット/ゲット・フィールト・メソッドを指定するこ
とによって許可されるが、提案されるキャップ・ファイル・フォーマットでもこ
のような保護された、または公用と宣言されたフィールドへの直接アクセスが可
能である。保護されたまたは公用のインスタンス・フィールドをエキスポートす
るパッケージは、記号リンクを可能にするために、このようなフィールドに対す
る名前とオフセットを含んでいなければならない。
目がその記号のタイプ(クラスなど)、名前および値を含んでいる定数プールを
含んでいる。キャップ・ファイル・フォーマットが大域命名方式をサポートする
必要がないので、関連する記号の名前は簡単に指定できる。記号は、0からnま
での番号を付け、アプリケーション・プログラミング・インターフェース(AP
I)の仕様と共に配布することができる。このような仕様の実施者は、n+1で
始まる新しい名前を選ぶことにより、なお追加のクラスなどをエキスポートする
ことができる。
フィックスアップ・テーブルの項目は、再配置のタイプ(下記参照)、再配置先
のテキスト・セクションへのオフセット、および記号の名前(スペースの効率の
ため、再配置される位置に格納することもできる)を含んでいる。この提案され
た命名方式を用いると、名前をターゲット・パッケージの定数プールへのインデ
ックスとして使用することができる。定数プールの項目は、項目のタイプ、名前
および関連する値を含んでいる。リンカは、項目のタイプに応じてフィックスア
ップ・テーブルの項目を再配置する。
イプでなければならない。その値は、そのメソッドが定義されているターゲット
・パッケージへのオフセットでなければならない。リンカはメソッドのアドレス
を計算し、テキスト・セクションを所与のオフセットに固定(fix)する。
らない点を除き、上記と同じである。
ければならず、その値がパッケージのデータ・セクションへのオフセットである
点を除き、上記と同じである。
ンス・サイズ値を再配置しなければならない: 所与の名前をもつターゲット・パッケージの定数プールの項は、クラス・タイ
プでなければならない。リンカはターゲット・クラスのアドレスを計算し、その
クラスのインスタンス・サイズを取得する(後者はクラス構造の要素である)。
リンカはインスタンス・サイズをテキスト・セクションのオフセットで与えられ
る値に加え、後者をその合計で置き換える。
・フィールド・タイプでなければならない。この項の値は、そのクラスのインス
タンスにおけるそのフィールドの絶対オフセットである。
フィールドをエキスポートする場合、リンカは定数プールにおけるその項目も再
配置する。その実際のオフセットは、相対インスタンス・フィールドのオフセッ
トと同様に再配置される。
ができる。アプレットは、定数プールを必要とせず、複数のアプレットの間で共
有できるパッケージだけが、将来使用するために定数プールを必要とする。定数
プールのサイズは、エキスポートされる項の数および項のサイズによって決まる
。現在のJavaCardシステム・クラス用の定数プールは、現在約160項を占める
。定数プールの項は、タイプ・フィールドと名前と値を含み、4バイトで格納す
ることができる(提案された命名方式を用いると、これは3バイトにまで減らす
ことができる)。この結果、全てのシステム・クラスに対しての定数プールのサ
イズは720バイトになる。
項を区別しない。このため、内部で定義される項をカバーする定数プールの項を
除去するのが難しい。
びクラス構造におけるインスタンス・サイズ・フィールドは8ビット幅に過ぎな
い。このため、リンク・プロセス中にフィールドのオフセットをバインドするた
めの情報が格納できる、定数プールへのインデックスとしてこの値を使用するこ
とは現在不可能である。
書で提案するような)軽い命名方式を可能とするために、強化機能が必要である
。
そのためのスペースもない、たとえばリンク・プロセス中に予め計算されたオフ
セットだけを使用するだけで十分である。本発明によるキャップ・ファイル・フ
ォーマットは、この方向に安全に拡張することができる。
(または、実施id)も含んでいる。
換時にコンバータが計算できるオフセットをも含んでいる。
パッケージがカードに現在インストールされているものと同じベンダからのもの
(すなわち、同じ実施)かどうかをチェックする。そうである場合、ローダは、
リンク・プロセス中にアプレットのキャップ・ファイルにおけるオフセットを使
用する。そうでない場合、ダウンロード・プロセスは、失敗する。
はない。その代わりに、JavaSoftの提案から始めて、キャップ・ファイルがどう
いうものであるべきか、どうでなければならないかについて詳細な議論を行う。
とはいえ、この説明で言及したキャップ・ファイル・フォーマットの項のより正
式な仕様を、C言語様の宣言として示す。これはわかりやすいようにここに指定
したもので、最適な形ではない。 // フィックスアップ・テーブルのフォーマット typedef struct_fixup_table{ u1 target_aid_cnt; u1 target_aid[]; u1 entries_cnt; fixup_entry_t entries[]; }; // フィックスアップ項目のレイアウト typedef struct_fixup_entry{ u1 type; u2 offset; // テキストまたはデータに対するオフセット union{ u2 target_offset;// ターゲット・パッケージに対するオフセット u2 symbol_name; // ターゲット定数プールに対する名前とインデックス }value; } fixup_entry_t; // 個々のフィックスアップ項目タイプ // テキスト・セクションまたはデータ・セクションにおける16ビットのアド レスをオフセットによって再配置する // これはクラス、メソッドなどのアドレスをカバーできる #define RELO_TEXT_16BIT_WITH_OFFSET #define RELO_TEXT_16BIT_WITH_OFFSET // 記号の値をテキスト・セクションに再配置する #define RELO_CLASS_BY_SYM #define RELO_METHOD_BY_SYM #define RELO_STATICFIELD_BY_SYM #define RELO_INSTANCEFIELD_BY_SYM // 定数プールのレイアウト typedef stuct_constant_pool{ u2 cnt; cp_item_t items[cnt]; }; // 定数プール項のレイアウト typedef struct_cp_item{ unsigned type:4 // 項のタイプ unsigned name:12; // 何か必要とされる場合には、名前 u2 offset; // オフセット }; // 定数プール項のタイプ #define CONSTPOOL_CLASS #define CONSTPOOL_METHOD #define CONSTPOOL_STATICFIELD #define CONSTPOOL_INSTANCEFIELD
図である。
キングを示す図である。
を示す図である。
Claims (6)
- 【請求項1】 バイトコードとクラス構造を含むプログラムを実行するスタック・ベースのイ
ンタープリタを備え、さらにリンク時にのみ使用される内部情報とレイト・コー
ド・バインディングのために予約された外部情報とを含む変更定数プールを備え
、前記内部情報がリンク後に前記変更定数プールから除去されるJavaランタイム
・システム。 - 【請求項2】 前記Javaランタイム・システムが、JavaCardである請求項1に記載のJavaラン
タイム・システム。 - 【請求項3】 バイトコードとクラス構造を含むパッケージを実行するためのスタック・ベー
スのインタープリタを備えるJavaランタイム・システムに新しいコードを導入す
る方法であって、 前記システム内に存在する前記パッケージに前記新しいコードをリンク(内部
リンク)し、それにより前記新しいコードのそれ自体に対するオフセットをリン
ク時にしかわからない参照で置き換え、 それにより前記パッケージの定数プールに含まれる記号情報(名前)を使用し
て外部リンクを解決し、 少なくともリンク時にしかわからない前記参照による置換えのために使用され
る情報を、前記定数プールから除去する方法。 - 【請求項4】 外部パッケージにリンクするために使用される情報も、前記定数プールから除
去される請求項3に記載の方法。 - 【請求項5】 前記定数プール中の残りの情報により、後でダウンロードされる他のパッケー
ジおよびアプレットが、前記新しいコードに適切にアクセスできるようになる(
レイト・コード・バインディング)請求項3に記載の方法。 - 【請求項6】 前記Javaランタイム・システムが、JavaCardである請求項3に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP98105179.0 | 1998-03-23 | ||
EP98105179 | 1998-03-23 | ||
PCT/IB1998/001799 WO1999049392A1 (en) | 1998-03-23 | 1998-11-12 | Java runtime system with modified constant pool |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002508544A true JP2002508544A (ja) | 2002-03-19 |
JP3632598B2 JP3632598B2 (ja) | 2005-03-23 |
Family
ID=8231635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000538296A Expired - Lifetime JP3632598B2 (ja) | 1998-03-23 | 1998-11-12 | 変更定数プールを備えたJavaランタイム・システム |
Country Status (13)
Country | Link |
---|---|
US (1) | US6792612B1 (ja) |
EP (1) | EP1066562B1 (ja) |
JP (1) | JP3632598B2 (ja) |
KR (1) | KR100404785B1 (ja) |
CN (1) | CN1109971C (ja) |
CA (1) | CA2322686A1 (ja) |
CZ (1) | CZ20003437A3 (ja) |
DE (1) | DE69814174T2 (ja) |
HK (1) | HK1033700A1 (ja) |
HU (1) | HUP0101368A3 (ja) |
MY (1) | MY124662A (ja) |
PL (1) | PL193009B1 (ja) |
WO (1) | WO1999049392A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100643268B1 (ko) * | 2004-01-17 | 2006-11-10 | 삼성전자주식회사 | 자바 가상 머신의 성능을 향상시키는 방법 및 상기 방법에의해 동작되는 시스템 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581206B2 (en) * | 1999-11-12 | 2003-06-17 | Sun Microsystems, Inc. | Computer program language subset validation |
US6968549B1 (en) * | 1999-07-02 | 2005-11-22 | Beryl Technical Assays Llc | Method and system for dynamically loading data structures into memory with global constant pool |
US7150005B2 (en) * | 1999-07-02 | 2006-12-12 | Beryl Technical Assays, Llc | Method and system for global constant management for memory |
KR100319755B1 (ko) * | 1999-12-02 | 2002-01-05 | 오길록 | 내장형 자바가상머신을 위한 바이트코드 압축 방법 |
US20010007146A1 (en) * | 1999-12-23 | 2001-07-05 | Uwe Hansmann | Method for providing a set of software components |
US7080359B2 (en) | 2002-01-16 | 2006-07-18 | International Business Machines Corporation | Stack unique signatures for program procedures and methods |
US7024657B2 (en) * | 2000-02-21 | 2006-04-04 | Matsushita Electric Industrial Co., Ltd. | Program generation apparatus for program execution system, replaces variable name in each class file by assigned offset number so that same offset numbers are assigned to non-dependent variables with same variable name |
FR2815801B1 (fr) * | 2000-10-20 | 2004-10-29 | Trusted Logic | Protocole de transmission d'une pluralite de flux logiques d'echange multiple de couples de commande/reponse sur un canal physique unique d'echange entre maitre et esclave et systeme de suivi et de controle d'execution d'appliquettes |
US6779732B2 (en) | 2001-08-31 | 2004-08-24 | Schulumberger Malco, Inc. | Method and apparatus for linking converted applet files |
FR2831684B1 (fr) * | 2001-10-31 | 2004-03-05 | Gemplus Card Int | Installation de programme compile notamment dans une carte a puce |
US7131121B2 (en) * | 2001-11-14 | 2006-10-31 | Axalto, Inc. | Method and apparatus for linking converted applet files without relocation annotations |
US7114152B2 (en) | 2002-01-08 | 2006-09-26 | International Business Machines Corporation | Method, apparatus, and program to determine the mutability of an object at loading time |
NL1019876C2 (nl) * | 2002-01-31 | 2003-08-04 | Chess Embedded Technology B V | Systeem en werkwijze voor het laden van een programmacode in een inrichting alsmede een werkwijze voor het voeden van een programmacode aan een inrichting. |
US7272827B2 (en) | 2002-04-03 | 2007-09-18 | International Business Machines Corporation | Statically detecting externally referenced interfaces of a program |
US7761861B2 (en) * | 2002-11-29 | 2010-07-20 | Research In Motion Limited | Method for generating interpretable code for storage in a device having limited storage |
FR2864650B1 (fr) * | 2003-12-24 | 2006-03-24 | Trusted Logic | Procede de mise a jour d'applications pour carte a puce |
US7886281B2 (en) * | 2004-03-30 | 2011-02-08 | Symantec Corporation | System and methods for cross-tier transaction tracing |
US7356811B2 (en) * | 2004-07-08 | 2008-04-08 | International Business Machines Corporation | Method and apparatus for referencing a constant pool in a java virtual machine |
DE102004058882A1 (de) * | 2004-12-06 | 2006-06-08 | Giesecke & Devrient Gmbh | Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode |
US8352925B2 (en) * | 2007-01-16 | 2013-01-08 | Oracle America, Inc. | Mechanism for enabling a set of code intended for a first platform to be executed on a second platform |
AU2010335972B2 (en) | 2009-12-21 | 2013-10-03 | 13079023 Canada Association | Systems and methods for accessing and controlling media stored remotely |
US9195568B2 (en) * | 2011-02-28 | 2015-11-24 | Typemock Ltd. | Methods, circuits, apparatus, systems and associated software modules for evaluating code behavior |
US9846631B2 (en) * | 2011-02-28 | 2017-12-19 | Typemock Ltd. | Methods, circuits, apparatus, systems and associated software modules for evaluating code behavior |
US9042266B2 (en) | 2011-12-21 | 2015-05-26 | Kik Interactive, Inc. | Methods and apparatus for initializing a network connection for an output device |
US9383448B2 (en) | 2012-07-05 | 2016-07-05 | Deca System Co., Ltd. | Golf GPS device with automatic hole recognition and playing hole selection |
CN103677778B (zh) * | 2012-09-18 | 2016-09-14 | 北京中电华大电子设计有限责任公司 | 一种CAP文件Classref常量的解析方法 |
US9223555B2 (en) * | 2013-11-07 | 2015-12-29 | Netronome Systems, Inc. | Hierarchical resource pools in a linker |
US10268465B2 (en) * | 2016-10-24 | 2019-04-23 | International Business Machines Corporation | Executing local function call site optimization |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5291601A (en) * | 1989-06-01 | 1994-03-01 | Hewlett-Packard Company | Shared libraries implemented with linking program loader |
US5594903A (en) * | 1991-02-26 | 1997-01-14 | Lynx Real-Time Systems, Inc. | Operating System architecture with reserved memory space resident program code identified in file system name space |
US5581768A (en) * | 1995-02-27 | 1996-12-03 | Intel Corporation | Method and apparatus for executing applications in place from write once/seldom memories |
US6112025A (en) * | 1996-03-25 | 2000-08-29 | Sun Microsystems, Inc. | System and method for dynamic program linking |
US5815718A (en) * | 1996-05-30 | 1998-09-29 | Sun Microsystems, Inc. | Method and system for loading classes in read-only memory |
JP2000514584A (ja) * | 1996-10-25 | 2000-10-31 | シュルンベルジェ システーム | 高級プログラミング言語を用いたマイクロコントローラ |
US6366876B1 (en) * | 1997-09-29 | 2002-04-02 | Sun Microsystems, Inc. | Method and apparatus for assessing compatibility between platforms and applications |
-
1998
- 1998-11-12 HU HU0101368A patent/HUP0101368A3/hu unknown
- 1998-11-12 PL PL342994A patent/PL193009B1/pl not_active IP Right Cessation
- 1998-11-12 WO PCT/IB1998/001799 patent/WO1999049392A1/en not_active Application Discontinuation
- 1998-11-12 CA CA002322686A patent/CA2322686A1/en not_active Abandoned
- 1998-11-12 DE DE69814174T patent/DE69814174T2/de not_active Revoked
- 1998-11-12 CN CN98813912A patent/CN1109971C/zh not_active Expired - Lifetime
- 1998-11-12 CZ CZ20003437A patent/CZ20003437A3/cs unknown
- 1998-11-12 KR KR10-2000-7009943A patent/KR100404785B1/ko not_active IP Right Cessation
- 1998-11-12 US US09/646,720 patent/US6792612B1/en not_active Expired - Lifetime
- 1998-11-12 EP EP98950270A patent/EP1066562B1/en not_active Revoked
- 1998-11-12 JP JP2000538296A patent/JP3632598B2/ja not_active Expired - Lifetime
-
1999
- 1999-02-23 MY MYPI99000623A patent/MY124662A/en unknown
-
2001
- 2001-05-12 HK HK01103313A patent/HK1033700A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100643268B1 (ko) * | 2004-01-17 | 2006-11-10 | 삼성전자주식회사 | 자바 가상 머신의 성능을 향상시키는 방법 및 상기 방법에의해 동작되는 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR100404785B1 (ko) | 2003-11-07 |
EP1066562B1 (en) | 2003-05-02 |
HK1033700A1 (en) | 2001-09-14 |
MY124662A (en) | 2006-06-30 |
CN1109971C (zh) | 2003-05-28 |
DE69814174T2 (de) | 2004-03-04 |
CA2322686A1 (en) | 1999-09-30 |
CZ20003437A3 (cs) | 2001-11-14 |
EP1066562A1 (en) | 2001-01-10 |
US6792612B1 (en) | 2004-09-14 |
JP3632598B2 (ja) | 2005-03-23 |
PL342994A1 (en) | 2001-07-16 |
WO1999049392A1 (en) | 1999-09-30 |
HUP0101368A3 (en) | 2004-04-28 |
CN1286770A (zh) | 2001-03-07 |
PL193009B1 (pl) | 2007-01-31 |
DE69814174D1 (de) | 2003-06-05 |
HUP0101368A2 (hu) | 2001-08-28 |
KR20010041716A (ko) | 2001-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3632598B2 (ja) | 変更定数プールを備えたJavaランタイム・システム | |
US6880155B2 (en) | Token-based linking | |
US8434099B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
US6799173B2 (en) | Method and apparatus for sharing code containing references to non-shared objects | |
US6760905B1 (en) | Lazy compilation of template-generated classes in dynamic compilation execution environments | |
US7565665B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
EP1214645B1 (en) | Method and system for distributing object-oriented computer programs | |
JPH10198570A (ja) | 読み出し専用メモリにクラスをロードする方法及びシステム | |
JP2002536743A (ja) | リソース制約デバイスのためのオブジェクト指向命令セット | |
KR19980079641A (ko) | 비고유 바이트코드를 컴퓨터 시스템 내의 프로세서에 고유한 일단의 코드로 변환하기 위한 방법 및 시스템 | |
US7003768B2 (en) | Method and apparatus for class intialization barriers and access to class variables in multitasking virtual machines | |
EP1481320B1 (en) | Two tier clusters for representation of objects in java programming environments | |
US7181724B2 (en) | Representation of Java® data types in virtual machines | |
US20020198698A1 (en) | Representation of objects in a Java programming environment | |
WO2003019364A1 (en) | Frameworks for efficient representation of string objects in java programming environments | |
WO2002048864A2 (en) | System registers for an object-oriented processor | |
Thomas | Mite: a fast and flexible virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20040308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040308 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040524 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040607 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040824 |
|
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: 20041208 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20041208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041213 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080107 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090107 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |