一种Java电脑程序语言的预先解译与执行方法

文档序号:2818901阅读:273来源:国知局
专利名称:一种Java电脑程序语言的预先解译与执行方法
技术领域
本发明是为一种“Java”电脑程序语言的预先解译与执行方法,尤指应用于连接到一网路上的一嵌入式设备作业系统中“Java”电脑程序语言的预先解译与执行方法。
随著网际网路使用的逐渐普及,由美国升阳电脑公司针对网际网路的应用所发展出来的“Java”电脑程序语言亦逐渐受到重视,因为其具有“跨平台”的能力,故以其所完成的程序可在任何形态的电脑环境下执行,使得网路使用者可从网路伺服端下载至使用者的电脑执行上,减轻网路伺服端的工作负担。
由于“Java”电脑程序语言需其有跨平台的能力方能于网路上流传,因此在设计上,“Java”电脑程序语言经编译器编译后所得的执行码是以比特码(bytecode)为基本单位所组成,而比特码(bytecode)即相当于Java虚拟机器(Virtual Machine)的“机器语言”,然后采用逐步解译(Interpret)方式为其程序的执行方法。传统且最常用的方式是为待整个程序以比特码(bytecode)形式由网路伺服端下载至用户端后,再于每次执行时对其以比特码(bytecode)所组成的程序码重新解译一次,包括将程序中所包含的运算元重新作转换(由网路格式转换成机器格式)。如此一来将造成程序执行效率不佳,但其优点为所占存储器空间较小。
为改善上述方法所造成程序执行效果不佳的缺失,而随后发展出的及时编译(Just-In-Tine Compile,简称JIT)法是于整个“Java”电脑程序语言以比特码(bytecode)形式由网路伺服端下载至用户端之际,利用下载传输速度较慢的等待时间,将所接收到的比特码立刻编译转换成原生码(Native Code)储存下来,待整个程序下载完毕欲执行时,便可直接执行已编译转换完成的原生码,因此有极佳的执行效率,但此方法在用户端需具备有及时编译器,且编译转换完成的原生码(Native Code)所占的存储器空间较原始的比特码(bytecode)为大,故其缺点是为用户端硬件设备的要求较高,不利硬件设备及存储器皆有限的嵌入式设备(如具网路浏览功能的电视机、电话机、电子字典、掌上型电子数字助理等)来进行应用。
而如何解决上述种种习用技术手段的缺失,以提供一适用嵌入式设备的硬件限制且执行效能较传统逐步解译方式为佳的技术手段,是为发展本发明的一主要目的。
即,本发明的目的在于提供一种Java电脑程序语言的预先解译与执行方法,其可提供一适用嵌入式设备的硬件限制且执行效能较传统逐步解译方式为佳的技术手段。
本发明是为一种“Java”电脑程序语言的预先解译与执行方法,其是应用于连接到一网路上的一嵌入式设备作业系统中“Java”电脑程序语言的执行上,其方法包含下列步骤(a)于该嵌入式设备中建立一个由比特码(bytecode)执行码对照至其相对应副程序进入点的指标(pointer)对照表;(b)于该嵌入式设备自该网路下载的一Java程序之时,依序将所接收到的每一比特码(bytecode)执行码根据该指标对照表转成其所相对应的副程序进入点的指标资料,以及将运算元由网路格式转换成机器格式并经一维持其相对定址的正确性的调整步骤后,皆依序储存于该嵌入式设备中;以及(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行,用以完成该Java程序于该嵌入式设备作业系统中的执行。
根据上述构想,本发明所提的“Java”电脑程序语言的预先解译与执行方法,其中该维持其相对定址的正确性的调整步骤是为运算元由网路格式转换成机器格式之后所遗留的空缺,是以NOP副程序来补足比特组数,以维持程序经转换后相对定址的正确性。
根据上述构想,本发明所提的“Java”电脑捏式语言的预先解译与执行方法,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是根据所读取到的指标资料做为程序执行时的一指令指标(Instruction Pointer)来指向所呼叫的副程序,而直接跳入该指令指标所代表的副程序进入点。而在读取运算元时,先将该指令指标向后移动一个存储单位,再以该指令指标取出运算元。另外,是于执行下一个指令时,是先将变数(IP)向后移动一个存储单位,再进行根据所读取到的指标资料而直接跳入该指令指标所代表指向的副程序进入点。
为加快传统逐步解译(Interpret)方式的执行速度,且省去及时编译(Just-In-Time Compile,简称JIT)方式中用户端所需的硬件设备要求,以求适用于硬件设备及存储器皆有限制的嵌入式设备(如具网路浏览功能的电视机、电话机、电子字典、掌上型电子数字助理等),而本发明所揭露的“预先解译方法”的较佳实施例乃以下列步骤进行(a)于该嵌入式设备中建立一个由比特码(bytecode)执行码对照至其相对应副程序进入点的指标(pointer)对照表;例如0×00对应至mop()0×01对应至aconst_null()......
0×2e对应至iaload()…等,并将此指标对照表储存于其存储器中。
(b)于该嵌入式设备自该网路下载的一Java程序之时,即刻将接收到的每一比特码(bytecode)执行码根据该指标对照表的对应,预先转成其所相对应的副程序进入点的指标资料,并将运算元由网路格式转换成机器格式,然后将转换所得依序储存下来。然而为了维持网路格式转换成机器格式后程序相对定址的正确性,需将运算元由网路格式转换成机器格式之后所遗留的空缺,是以NOP副程序来补足比特组数,例如若将两个以上运算元合并成一个运算元时,其后必须以NOP补足个数,以维持相对定址的正确性。
(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行。然执行时是根据所读取到的指标资料做为程序执行时的一指令指标(Instruction Pointer)来指向所呼叫的副程序,而直接跳入该指令指标所代表的副程序进入点。而在读取运算元时,先将该指令指标向后移动一个存储单位,再以该指令指标取出运算元。另外,当欲执行下一个指令时,是先将变数(IP)向后移动一个存储单位,再进行根据所读取到的指标资料而直接跳入该指令指标所代表指向的副程序进入点。
而以本发明所完成的预先解译Java虚拟机器(Virtual Machine)执行器,是具有下列技术特征1.所采用预先解译的方式,执行效能已接近原生码,但用户端的硬件要求没有及时编译器的负担。
2.解译结果所占存储器空间是为有限度地放大(16比特机器占用原来比特码(bytecode)大小的两倍,32比特机器则占用原来比特码(bytecode)大小的四倍),可预估并较及时编译(Just-In-Tine Compile,简称JIT)方式节省存储器的使用量。
3.运算元由网路格式转换成机器格式后所遗留的空缺以NOP补足,可简化分支(branch)命令的复杂度。
综上所述,本发明确可解决习用技术手段的缺失,提供一适用嵌入式设备的硬件限制且执行效能较传统逐步解译方式为佳的技术手段,达成发展本发明的主要目的,创作本发明得由熟习此技艺的人士所作的任何修饰,然皆不脱如附申请专利范围所欲保护的内容。
权利要求
1.一种Java电脑程序语言的预先解译与执行方法,其是应用于连接到一网路上的一嵌入式设备作业系统中Java电脑程序语言的执行上,其特征在于,其方法包含下列步骤(a)于该嵌入式设备中建立一个由比特码执行码对照至其相对应副程序进入点的指标对照表;(b)于该嵌入式设备自该网路下载的一Java程序之时,依序将所接收到的每一比特码执行码根据该指标对照表转成其所相对应的副程序进入点的指标资料,以及将运算元由网路格式转换成机器格式并经一维持其相对定址的正确性的调整步骤后,皆依序储存于该嵌入式设备中;以及(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行,用以完成该Java程序于该嵌入式设备作业系统中的执行。
2.根据权利要求1所述的Java电脑程序语言的预先解译与执行方法,其特征在于,其中该维持相对定址的正确性的调整步骤是为运算元由网路格式转换成机器格式之后所遗留的空缺,是以NOP副程序来补足比特组数,以维持程序经转换后相对定址的正确性。
3.根据权利要求1所述的Java电脑程序语言的预先解译与执行方法,其特征在于,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是根据所读取到的指标资料做为程序执行时的一指令指标来指向所呼叫的副程序,而直接跳入该指令指标所代表的副程序进入点。
4.根据权利要求3所述的Java电脑程序语言的预先解译与执行方法,其特征在于,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是于读取运算元时,先将该指令指标向后移动一个存储单位,再以该指令指标取出运算元。
5.根据权利要求3所述的Java电脑程序语言的预先解译与执行方法,其特征在于,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是于执行下一个指令时,是先将变数向后移动一个存储单位,再进行根据所读取到的指标资料而直接跳入该指令指标所代表指向的副程序进入点。
6.一种跨平台功能的电脑程序语言的预先解译与执行方法,其是应用于连接到一网路上的一嵌入式设备作业系统中该具跨平台功能的电脑程序语言的执行上,其特征在于,其方法包含下列步骤(a)于该嵌入式设备中建立一个由比特码执行码对照至其相对应副程序进入点的指标对照表;(b)于该嵌入式设备自该网路下载的一具跨平台功能的电脑程序码时,依序将所接收到的每一比特码执行码根据该指标对照表转成其所相对应的副程序进入点的指标资料,以及将运算元由网路格式转换成机器格式并经一维持其相对定址的正确性的调整步骤后,皆依序储存于该嵌入式设备中;以及(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行,用以完成该具跨平台功能的电脑程序于该嵌入式设备作业系统中的执行。
7.根据权利要求6所述的具跨平台功能的电脑程序语言的预先解译与执行方法,其特征在于,其中该跨平台功能的电脑程序语言是为一Java电脑程序语言。
8.根据权利要求7所述的具跨平台功能的电脑程序语言的预先解译与执行方法,其特征在于,其中该维持相对定址的正确性的调整步骤是为运算元由网路格式转换成机器格式之后所遗留的空缺,是以NOP副程序来补足比特组数,以维持程序经转换后相对定址的正确性。
9.根据权利要求7所述的具跨平台功能的电脑程序语言的预先解译与执行方法,其特征在于,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是根据所读取到的指标资料做为程序执行时的一指令指标来指向所呼叫的副程序,而直接跳入该指令指标所代表的副程序进入点。
10.根据权利要求9所述的具跨平台功能的电脑程序语言的预先解译与执行方法,其特征在于,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是于读取运算元时,先将该指令指标向后移动一个存储单位,再以该指令指标取出运算元。
11.根据权利要求9所述的具跨平台功能的电脑程序语言的预先解译与执行方法,其特征在于,其步骤(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行中,是于执行下一个指令时,是先将变数向后移动一个存储单位,再进行根据所读取到的指标资料而直接跳入该指令指标所代表指向的副程序进入点。
全文摘要
一种Java电脑程序语言的预先解译与执行方法,包含下列步骤:(a)于嵌入式设备中建立一个由比特码执行码对照至其相对应副程序进入点的指标对照表;(b)于嵌入式设备自网路下载的一Java程序时,依序将所接收到的每一比特码执行码根据指标对照表转成其所相对应的副程序进入点的指标资料;以及(c)依序读取代表相对应副程序的指标资料与机器格式的运算元予以执行,用以完成Java程序于嵌入式设备作业系统中的执行。
文档编号G10L19/00GK1365099SQ0110041
公开日2002年8月21日 申请日期2001年1月10日 优先权日2001年1月10日
发明者周旺暾 申请人:财团法人资讯工业策进会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1