[go: up one dir, main page]

CN1286770A - 具有修改的恒定存储区的java运行系统 - Google Patents

具有修改的恒定存储区的java运行系统 Download PDF

Info

Publication number
CN1286770A
CN1286770A CN98813912A CN98813912A CN1286770A CN 1286770 A CN1286770 A CN 1286770A CN 98813912 A CN98813912 A CN 98813912A CN 98813912 A CN98813912 A CN 98813912A CN 1286770 A CN1286770 A CN 1286770A
Authority
CN
China
Prior art keywords
memory block
constant memory
information
bag
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.)
Granted
Application number
CN98813912A
Other languages
English (en)
Other versions
CN1109971C (zh
Inventor
迈克尔·白恩茨其
彼得·布赫勒
马库斯·欧斯特雷彻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=8231635&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1286770(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1286770A publication Critical patent/CN1286770A/zh
Application granted granted Critical
Publication of CN1109971C publication Critical patent/CN1109971C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract 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

建议一个Java运行系统,它包括一个基于堆栈的解释器,该解释器执行一个包括字节代码和类结构的程序。该系统还包括一个修改的恒定存储区,该恒定存储区具有只在链接期间使用的内部信息以及保留以备后期代码联编用的外部信息。在链接以后将所述内部信息从所述修改的恒定存储区中移去。

Description

具有修改的恒定存储区的JAVA运行系统
本发明涉及资源约束的Java运行环境中例如JavaCard中动态的代码下载和链接。
在常规Java系统中,使用在所谓恒定存储区中的间接名称查表来解决对类结构(内部和外部)的访问。这一方案只能用于一个能提供通过处理能力和内部资源表达的足够资源的系统。
在一个资源约束运行系统(例如一个JavaCard)中,此方案并不乐观。相反地,可以使用已解决的对类结构的访问因而避免间址操作和避免对恒定存储区的维护。
本发明的目的是解决访问(链接)。
本发明的一个目的是在资源约束Java运行环境中达到有效的链接。
本发明的一个目的是在资源约束Java运行环境中达到空间和运行时的有效链接。
图1阐述具有JavaSoft建议的冠文件格式的链接。
图2阐述具有此处建议的文件格式的通过偏移量的链接。
图3阐述具有此处建议的文件格式的通过名称的链接。
下面讨论本发明的一般回顾和实施方面。Java是一个由SunMicrosystems,Inc.2550 Garcia Ave.,Mountain View,CA 94043-1100,USA所开发的编程语言和环境;“Java”一词是该公司的注册商标。
由于本说明也涉及实施细节,因此认为熟悉技术的人对Java虚拟机及其实施的基本机理是熟悉的。J.Goslin,B.Joy和G.Tele在他们的“Java语言规范”中以及T.Lindholm和F.Yellin在他们的“Java虚拟机规范”中(两者都由Addison-Wesley Publishing Co.于1996年出版)都全面地介绍了Java语言及JVM的实施。然而请注意,此处作为Java-Card VM引用的Java-Card虚拟机在某些方面是不同的,因为只使用一个子集和附加字节代码。
1.0 JavaSoft CAP文件格式建议
如JavaSoft所建议的,CAP文件格式将一个冠文件分为几个部分。一个冠文件基本上包含一个文本部分和一个数据部分。文本部分包含类结构,方法结构和字节代码指令。数据部分包含小板(cardlet)的静态域。文本部分通过恒定存储区中的一个偏移量访问在链接之前其实际地址不详的所有符号(类、方法等)。对于每一个这类符号,恒定存储区包含目标包的AID和该符号在该目标包(即正被链接的包)中的偏移量。恒定存储区为所有输入的符号(在其他包中定义的符号)和所有输出的符号(在正被装载的小板内定义和访问的符号)提供这些偏移量。
文本部分、数据部分和恒定存储区的组织提供了足够的信息以供执行小板时使用。在装载小板之后,链接程序可以逐步地通过恒定存储区并且使用符号的实际地址来替代进入符号的目标包内使用的符号偏移量。链接程序只需按照给定的AID寻找具体包,将其起始地址加至符号偏移量上并且将此信息存回至恒定存储区中。Java-Card VM然后可以使用恒定存储区内的这些地址以供翻译用。然而,在运行时并不需要恒定存储区本身。事实上,在翻译期间它将要求一个不必要的附加间址操作以便寻找符号地址。此外,恒定存储区不必要地在板上占用空间。因此JavaSoft冠文件格式使用个别部分的固定表以便避免在链接之后需要恒定存储区。固定表包含需要重定位的文本部分中的所有位置。链接程序搜索固定表并且将该位置的偏移量输入至恒定存储区内。然后它解决该符号的地址并将它存入文本部分中的初始位置中。然后翻译程序能够在运行期间直接使用这些地址,因此在链接过程之后可以移去恒定存储区。在链接过程之后唯一留在板上的部分是文本部分和数据部分。
小板与预先计算的和硬编码的进入目标包内的偏移量的链接允许实施一个紧凑系统。然而,它在系统类和不同板上的特定扩展的不同实施方面无法提供足够的灵活性。例如,一个按照IBM的系统类转换的小板和JavaSoft的扩展不太可能在具有来自JavaSoft的系统的板和来自IBM的扩展小板上运行。主要原因是不同实施之间的个别类、方法的偏移量以及实例的域偏移量是不同的。
在以下,本发明在现有JavaSoft建议的概念上扩展以及通过一个附加的轻量和灵活的符号化链接机理来加强它。
2.0本发明的CAP文件格式
根据本发明的冠文件格式也将冠文件分为不同部分。文本部分包含类结构、方法结构和字节代码指令,数据部分还是包括静态域。冠文件还在固定表中保持必要的重定位信息。对于小板与其链接的每一个包(即目标包)都有一个固定表。
固定表还在其中出现重定位的文本部分或数据部分中包含位置。在简单的情况下,这些位置也由一个可靠和熟知的目标包中的预先计算的偏移量所重定位。在此情况下,链接程序将使用给定的目标AID寻找包的起始地址,将偏移量加入目标包中及将该值存在文本部分的初始位置。进入目标包的偏移量可以或者保持于固定表中,或者保持于文本部分的重定位地址处以便使固定表更小。通过偏移量的重定位始终可以用于所装载小板本身内的大部分访问。转换程序可以预先计算这些偏移量而不会破坏兼容性。
由于系统整体性的原因,对于其他外部包的访问不应由预先计算的偏移量来链接。相反,应该在链接过程中使用一个名称或识别符来访问其他包。这些名称和它们相关连的值应该只存于那些在多个小应用程序之间共享的包的板上。由于这些名称/值对的表应该尽可能地小,此冠文件格式限制类文件元素的命名,但仍能提供不同规范的卖主(vendor)专用实施:
·公共类:必须命名和可输出。
·公共静态方法和构造者:同上。
·公共静态域:同上。
·虚拟方法:
翻译程序通过进入虚拟方法表中的一个索引来寻找一个虚拟方法。如果JavaCard环境需要支持虚拟方法的标准Java后期代码联编,则这些索引和虚拟方法表必须在板上解决。在构作方法表期间,链接程序必须判断在方法表中一个方法是否继承另一个方法。由于这些方法可以在不同小板内定义,必须为各方法引入一个全局命名方案以便判断两个方法是否具有相同类型。由于虚拟方法的后期代码联编需要一个全局命名方案和用于解决和命名虚拟方法的板上附加资源,本发明的冠文件格式不支持它。但即使有此限制,仍然有足够空间留给核心包和扩展的卖主专用实施。编程人员可以自由地增加私有的或静态的方法和类。他也能增加非私有实例方法,如果它们不是继承的和宣布为最后的。转换程序就可以用直接调用来替代对这些方法的调用。
·实例域:
一个类中的实例域的数量和类型通常不由规范所定义,并且将在不同卖主的实施之间变化。因此必须由一个CAP文件格式建议来解决域偏移量的联编。关于链接过程的域的使用可以分为以下三个类别:
·预先计算的域偏移量
一个get-/put-域指令访问一个其类和所有超类都在包含的小板内定义的域。此域的偏移量然后可以由转换程序预先计算,同时不必在装载过程期间链接。如果有协议认为对象类不包含任何域声明,则许多域访问都可归入此类别。
·访问具有任何小板之外的超类的小板内部类的域
此情况必须由一个冠文件格式支持以便允许将个别包中定义的类划分为子类。转换程序能够相对于小板之外的超类的实例大小而计算该域的偏移量并且将此值存于冠文件中。在链接过程期间域的实际偏移量必须根据基类大小重新计算。对于小板内部类的实例大小元素也可相同地进行。
·访问小板外部超类中或任何外部类中的域
虽然实例域很少声明为公共的,但它们经常声明为保护的。对保护域的访问始终由专用保护set-/-get-域方法所同意,但所建议的冠文件格式也允许对这类保护的或公共的声明域进行直接访问。一个输出一个保护的或公共的实例域的包必须包含一个名称和这类域的偏移量以便允许符号化链接。
一个输出类、方法或域的包可以包含一个恒定存储区,其条目包含类型(类等)、名称和该符号的值。由于冠文件格式不需支持全局命名方案,可以容易地规定相关连的符号的名称。这些符号可以从0数到n,并且可以与应用编程接口(API)的规范一起移交。这一规范的实施程序仍然能够通过选择从n+1开始的新名称来输出附加类。
图3显示一个小应用程序与一个目标包的符号化联编。固定表中的条目包含重定位类型(见下面)、进入重定位的文本部分中的偏移量,以及符号名称(为提高空间效率,它可能也存于重定位的位置内)。使用该建议的命名方案,该名称可以用作进入目标包的恒定存储区内的索引。恒定存储区内的条目包含条目类型、名称和相关连的值。链接程序根据条目类型将固定表中的条目重定位:
·要重定位一个方法:
具有给定名称的目标包的恒定存储区项目必须是一个方法类型。该值必须是一个进入在其中定义该方法的目标包的偏移量。链接程序计算该方法的地址并且在给定偏移量处固定该文本部分。
·要重定位一个类:
与以上相同,不同之处只是带有符号索引和名称的恒定存储区项目必须是类的类型。
·要重定位一个静态域:
与以上相同,不同之处只是带有符号索引和名称的恒定存储区项目必须是静态域类型,该值是进入包的数据部分的偏移量。
·要重定位一个相对实例域偏移量或相对类实例大小值:
带有给定名称的目标包的恒定存储区项目必须是类的类型。链接程序计算目标类的地址并获取该类(类结构的一个元素)的实例大小。链接程序将实例大小加至在文本部分偏移量处给出的值并且用所得和值来替代后者。
·对未定义类的绝对域访问:
带有给定名称的目标包的恒定存储区项目必须是实例域的类型。该项目的值是它的类的实例中该域的绝对偏移量。
如果所装载的小板是一个共享包及输出保护域或公共域,则链接程序也在恒定存储区内将它们的条目重定位。它们的实际偏移量用与相对实例域偏移量相同的方式来重定位。
一旦链接过程结束就可以移去固定表。小应用程序不需要恒定存储区,只有在多个小应用程序之间分享的包才需要恒定存储区以备将来使用。恒定存储区的大小决定于输出项目的数量和决定于项目的大小。现有JavaCard系统类的恒定存储区当今大约有160个项目。一个恒定存储区项目包含一个类型域、一个名称和一个值,它们可以存于4字节内(使用所建议的命名方案时,它们甚至可减少至三字节)。这样一来能使所有系统类的恒定存储区的大小成为720字节。
JavaSoft建议的不同:
·JavaSoft恒定存储区当今在内部定义的和外部定义的项目之间并无差别。这在去除覆盖内部定义项目的恒定存储区项目时困难。
·get-/put-域指令中域偏移量和类结构中的实例大小域只有8位宽。这就不可能当今将此值用作进入恒定存储区的索引,而在恒定存储区内可在链接过程期间存储信息以便联编一个域的偏移量。
由于这两个限制,现有JavaSoft建议需要加强以便有可能实现必要的轻量命名方案-类似于此处所建议的。
3.0附录
3.1较小扩展
在某些环境中,可能不需要或没有空间用于板上的任何符号化信息,例如在链接过程期间只使用预先计算的偏移量即已足够。根据本发明的冠文件格式可以在下列方向内以安全的方式扩展:
·一个包或小应用程序不但包含一个版本号,而且也包含一个卖主id(或实施id)。
·固定表中访问恒定存储区项目的条目也包含偏移量,转换程序能够在转换期间计算这些偏移量。
·在下载过程开始时装载程序判断小应用程序所需要的包是否来自与当今安装于板上的卖主相同的卖主(例如相同实施)。如果属实,则在链接过程期间装载程序使用小应用程序冠文件中的偏移量。否则下载过程失败。
3.2访问的冠文件格式项目的规范
详细描述的目的不是为了严格地规定一个冠文件的内容。相反,它提供一个从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 struct_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.权利要求1的Java运行系统是一个JavaCard。
3.一种用于将新代码引入Java运行系统的方法,该Java运行系统包括基于堆栈的解释器,所述解释器执行一个包括字节代码和类结构的包,
·将所述新代码与在所述系统中存在的所述包链接(内部链接),从而将一个只在链接时间知道的访问来替代所述新代码相对于它本身的偏移量,
·从而使用包含于所述包的一个恒定存储区内的符号化信息(名称)来解决外部链接,
·至少将那些由所述只在链接时间知道的访问所替代的信息从恒定存储区内移去。
4.权利要求3的方法,其中还将用于与外部包链接的信息从所述恒定存储区内移去。
5.权利要求3的方法,其中所述恒定存储区内的余留信息允许以后下载的其他包和小应用程序适当地访问所述新代码(后期代码联编)。
6.权利要求3的方法,其中所述Java运行系统是一个JavaCard。
CN98813912A 1998-03-23 1998-11-12 具有修改的恒定存储区的java运行系统 Expired - Lifetime CN1109971C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP98105179.0 1998-03-23
EP98105179 1998-03-23

Publications (2)

Publication Number Publication Date
CN1286770A true CN1286770A (zh) 2001-03-07
CN1109971C CN1109971C (zh) 2003-05-28

Family

ID=8231635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98813912A Expired - Lifetime CN1109971C (zh) 1998-03-23 1998-11-12 具有修改的恒定存储区的java运行系统

Country Status (13)

Country Link
US (1) US6792612B1 (zh)
EP (1) EP1066562B1 (zh)
JP (1) JP3632598B2 (zh)
KR (1) KR100404785B1 (zh)
CN (1) CN1109971C (zh)
CA (1) CA2322686A1 (zh)
CZ (1) CZ20003437A3 (zh)
DE (1) DE69814174T2 (zh)
HK (1) HK1033700A1 (zh)
HU (1) HUP0101368A3 (zh)
MY (1) MY124662A (zh)
PL (1) PL193009B1 (zh)
WO (1) WO1999049392A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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
CA2507371C (en) * 2002-11-29 2012-01-24 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
KR100643268B1 (ko) * 2004-01-17 2006-11-10 삼성전자주식회사 자바 가상 머신의 성능을 향상시키는 방법 및 상기 방법에의해 동작되는 시스템
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
CA2889724C (en) 2009-12-21 2021-06-08 Kik Interactive Inc. 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)

* Cited by examiner, † Cited by third party
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
CN1183449C (zh) * 1996-10-25 2005-01-05 施卢默格系统公司 用微控制器使用高级程序设计语言
US6366876B1 (en) * 1997-09-29 2002-04-02 Sun Microsystems, Inc. Method and apparatus for assessing compatibility between platforms and applications

Also Published As

Publication number Publication date
HUP0101368A2 (hu) 2001-08-28
PL342994A1 (en) 2001-07-16
HUP0101368A3 (en) 2004-04-28
EP1066562B1 (en) 2003-05-02
EP1066562A1 (en) 2001-01-10
DE69814174T2 (de) 2004-03-04
KR20010041716A (ko) 2001-05-25
CN1109971C (zh) 2003-05-28
CZ20003437A3 (cs) 2001-11-14
US6792612B1 (en) 2004-09-14
DE69814174D1 (de) 2003-06-05
JP3632598B2 (ja) 2005-03-23
KR100404785B1 (ko) 2003-11-07
PL193009B1 (pl) 2007-01-31
WO1999049392A1 (en) 1999-09-30
HK1033700A1 (en) 2001-09-14
CA2322686A1 (en) 1999-09-30
MY124662A (en) 2006-06-30
JP2002508544A (ja) 2002-03-19

Similar Documents

Publication Publication Date Title
CN1109971C (zh) 具有修改的恒定存储区的java运行系统
CN1222875C (zh) 用于资源受限装置的面向对象的指令集
US7543309B2 (en) Efficient linking and loading for late binding and platform retargeting
US6865659B2 (en) Using short references to access program elements in a large address space
US6983460B1 (en) Method for loading applications into a multiapplication embedded system equipped with data processing resources, corresponding embedded system and execution method
US20080229299A1 (en) Adaptive class loading
US6526422B1 (en) Striding-type generation scanning for parallel garbage collection
US7092978B2 (en) Space-efficient, depth-first parallel copying collection technique making use of work—stealing on the same structures that maintain the stack of items to be scanned
Shapiro et al. Persistence and migration for C++ objects
US20100281470A1 (en) Method for generating interpretable code for storage in a device having limited storage
US20050132374A1 (en) Work stealing queues for parallel garbage collection
US7565665B2 (en) Efficient linking and loading for late binding and platform retargeting
CN1955922A (zh) 用于动态提供本地库及其相关性的方法和系统
CN1233009A (zh) 封装程序供远程执行的方法和装置
CN1238500A (zh) 用于进行静态初始化的方法和系统
AU2891800A (en) Method and apparatus for dispatch table construction
US20040019887A1 (en) Method, system, and program for loading program components
US20090133042A1 (en) Efficient linking and loading for late binding and platform retargeting
US6941550B1 (en) Interface invoke mechanism
CN1329309A (zh) 操作系统的多语言用户接口
EP1444572B1 (en) Method and apparatus for facilitating compact object headers
US8732442B2 (en) Method and system for hardware-based security of object references
US6934726B2 (en) Storing and retrieving of field descriptors in Java computing environments
Yiyu et al. Architectural Support on Object-Oriented Programming in a JAVA Processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20030528