CN1117318C - 保密解译程序优化运行时调用专用变量函数的系统和方法 - Google Patents

保密解译程序优化运行时调用专用变量函数的系统和方法 Download PDF

Info

Publication number
CN1117318C
CN1117318C CN96121868A CN96121868A CN1117318C CN 1117318 C CN1117318 C CN 1117318C CN 96121868 A CN96121868 A CN 96121868A CN 96121868 A CN96121868 A CN 96121868A CN 1117318 C CN1117318 C CN 1117318C
Authority
CN
China
Prior art keywords
private variable
procedure
value
variable
instruction
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 - Fee Related
Application number
CN96121868A
Other languages
English (en)
Other versions
CN1158459A (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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1158459A publication Critical patent/CN1158459A/zh
Application granted granted Critical
Publication of CN1117318C publication Critical patent/CN1117318C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Abstract

一个保密程序解译程序首先执行一个特殊检查,它执行一个方法调用,以确定调用方法的本来目的是对一个专用变量进行访问、还是对所述专用变量值进行修改或是回送一个恒定值,当是这种情况时,正在被执行方法的解译程序的内部表示被修改,以直接访问被调用方法的专用变量,或直接访问被调用方法的所存储的恒定值。修改后的方法表示使用在一般的源代码程序中没有的多个特殊的“特许”装载和存储指令,用于访问正在被执行方法以外的专用变量和恒定值而不会被标记保密违反。

Description

保密解译程序优化运行时调用 专用变量函数的系统和方法
                         技术领域
本发明一般涉及面向对象计算机系统,其中,一解译程序以保密方式执行对象操作。本发明特别地涉及一种用于对多种方法(methods)优化调用的解译程序的改进,所述方法的本来目的是对专用变量进行访问、修改所述专用变量、或回送一个恒定值。
                         背景技术
在面向对象编程语言中,每一个对象都属于一个有时被称做对象类的特定的“类”(“class”)。所述一个对象类表示所述对象具有什么样的变量以及可以在一个对象上执行什么样的操作(“方法”)。
某些变量(即:在对象中)被标记为“专用”。这个标记表示只能使用属于与所述对象相同类的方法对所述变量进行访问或修改。它们不允许由其它的类进行修改或访问。它们与某些对象类的不同之处在于具有某些方法,这些方法的本来目的是访问一专用变量值、修改专用变量值、或回送一个恒定值。通过建立这种方法,该类的实现者(impementor)可以更好的隐藏实现类的详情。它还可以给予所述实现者(implementor)一个较大的自由度,再次实现该类,而不需要该类的所有用户去重新编译他们的代码。
但是,比起变量访问来讲,方法调用通常是非常昂贵的(即:占用太多的CPU时间)。类似的,方法调用与对恒定值进行的访问相比也是非常昂贵的。
在适当的时候,某些优化编译程序自动地将一个方法调用转换成一个简单的变量访问或修改,这有时被称之为“直接插入”(in-lining)。但是,这种方案在保密环境内由于下述两个原因而不能接受:
1)在优化代码结果中,将出现所述优化后的代码直接使用其它类的一个对象的专用变量的情况。但是,一个保密运行系统将注意到这一点并标记一个保密违反。特别是,一个保密运行系统通常决不允许一方法对另一类对象内部的专用变量进行访问;和
2)如果可能不存在任何一个人都具有针对该对象类的所述“老”的规定的优化编译代码(即:利用访问专用变量的方法的老版本)的话,那么,该原始类的程序设计者将丧失修改该执行的能力。
                        发明内容
本发明的一个目的就是要在不建立一个持久的修正程序的前提下优化运行时调用解译程序的方法,所述其方法的本来目的是要对所述专用变量或恒定值进行访问。
本发明的另一个目的是用于避免使一个类的方法对另一类对象的专用变量进行访问在不禁止所述解译程序的一般保密措施的情况下,优化一个运行期间的解译程序,以有效的执行多种方法,所述方法的本来目的是以避免保密违反的方式对专用变量或恒定值进行访问。
本发明提供一种计算机系统,包括:存储装置,用于存储多个对象和多个过程,所述对象中的每一个都包括一个相关对象类的事例和所述过程中的每一个都属于相应的对象类,所述多个过程包括多个简单的过程,其中,由每个所述简单过程执行的整个功能从如下组成的组中进行选择:(A)回送一个专用变量值,其中,所述的专用变量被存储并专用于所述简单过程所属的所述对象类中的一个对象中,(B)把一个规定值存储到所述的专用变量中,(C)回送一个恒定值;和保密程序解译装置,用于执行所述多个过程中被选择的一些过程,所述解译装置包括一个装载子程序装置,用于产生将被执行的所述过程中第一个过程的工作表达,还包括一个优化子程序装置,用于当被另一个所述过程调用时,优化所述简单过程的执行,当所述解译装置在处理从所述多个过程的第一个过程到第二个过程的过程调用时,所述优化子程序装置确定所述第二过程是否所述简单过程中的一个,和当所述的确定是肯定的时,用一个直接访问指令替换在所述第一过程的所述工作表达中的所述过程调用,其中,所述直接访问指令是从如下组成的组中选择:(A)用于直接回送所述专用变量值的第一指令,(B)用于将一个规定值直接存储到所述专用变量中的第二指令,和(C)用于直接存储所述恒定值的第三指令。
本发明还提供一种操作计算机系统的方法,包括如下步骤:在计算机存储装置中存储多个对象和多个过程,每个所述的对象包括相关对象类的一个事例和每个所述的过程属于一个相应的对象类,所述多个过程包括多个简单的过程,其中由每个所述简单过程执行的全部功能是根据如下组成的组进行选择的:(A)回送一个专用变量值,其中,所述的专用变量专用于所述简单过程所属的所述对象类的一个对象,(B)将一个规定值存储到所述的专用变量中,和(C)回送一个恒定值;在源程序解译装置的控制下,执行所述多个过程中所选择的一个,包括产生将被执行的所述多个过程中第一个过程的一个工作表达,和当由所述第一过程调用时优化所述多个简单过程中任意一个的执行,所述的优化步骤包括当所述解译装置在处理从所述多个过程的第一个过程到第二个过程的过程调用时,确定所述的第二过程是否所述多个简单过程中的一个,和当所述的确定结果是肯定的时,利用一个直接访问指令置换在所述第一过程的所述工作表达中的所述过程调用,其中,所述直接访问指令是从如下组成的组中选择的:(A)一个用于直接回送所述专用变量值的第一指令,(B)一个用于直接将一个规定值存储到所述专用变量中的第二指令,和(C)一个用于直接存储所述恒定值的第三指令
总之,本发明是一个程序解译程序,该解译程序用于解译在一个具有一存储器的计算机系统中的面向对象程序,所述存储器用于存储多种类的多个对象和多个过程。在一个最佳实施例中,保密程序解译程序执行一个特殊的检查,首先,它执行一个方法调用,以确定所调用的方法的本来目的是否去访问所调用方法的类的一个实例的专用变量值、去修改所调用方法类的一个实例的专用变量值、或回送一个恒定值。当是这种情况时,修改正在执行的所述方法的解译程序的内部表达,以使其直接对所调用方法类的一个事例的专用变量进行访问或直接对所存储的调用方法的恒定值进行访问。
由所述程序解译程序内部存储的修改后的方法表达使用在一般源代码程序中得不到的多个专门的“特许”装载和存储指令,它们允许对位于正在执行方法以外的其它类的对象事例中的专用变量以及恒定值进行访问。当执行所述方法的修改部分时,使用特许装载或存储的指令由所执行的方法直接对专用变量或恒定值进行访问,这种使用避免了由所述程序解译程序标记一个保密违反。
另外,当整个程序执行完成时,所述方法修改后的内部表达被清仓(flush)。其结果是该被执行方法的修改是短暂的。如果在程序应用之间修改所述多个调用方法中的任意一个所说程序,正在执行调用方法诸如去修正指定给专用变量的值或恒定值或者具有不再对专用变量进行简单访问而是对一个值进行计算的方法,那么,在这种后续的执行程序当中将使用所述调用方法的修正版本,借此以保持对相关对象类进行修改的能力。
                       附图简要说明
通过结合附图的详细描述和所附的权利要求,本发明的其它目的、特征将变得更清楚。
图1是结合本发明一个最佳实施例的计算机系统的方框图;
图2是在本发明一个最佳实施例中用于一个对象的数据结构的方框图;
图3是用于具有多个简单方法的对象类的数据结构的方框图;
图4概念性地示出了本发明装载和优化处理的方法;
图5是本发明一个最佳实施例中使用的程序解译程序过程的流程图。
                       具体实施方式
参看图1,其中示出了一个具有多客户(client)计算机102和多服务器计算机104的分布式计算机系统100。在最佳实施例中,每一个客户计算机102都通过互联网络103被连接到所述服务器104上,当然还可以使用其它的通信连接类型。在大多数客户计算机都是诸如Sun工作站、IBM兼容计算机和Macintosh计算机等的台式(desktop)计算机的同时,实际上,各种类型的计算机都可以被用做客户计算机。在最佳实施例中,每个客户计算机都包括一个CPU105、一个通讯接口106、一个用户接口107、一个存储器108。所述的存储器108存储:
·一个操作系统109;
·一个互连网络通信管理程序110;
·一个字节代码程序检验程序112,该检验程序用于检验一个规定的程序是否满足某个预先规定的完整性准则(integrity criteria);
·一个字节代码程序解译程序114,用于执行一个应用程序;
·一个类装载程序116,该类装载程序将对象类装载到用户的地址空间内,并利用所述字节代码检验程序去检验与每个装载的对象类相关的所述多个方法的完整性;
·至少一个类库(repository)120,用于局部(locally)地存储能够使所述计算机102的用户使用和/或得到的对象类122;
·至少一个对象库(repository)124,用于存储对象124,所述对象124是存储于对象库120中所述对象类的多个对象的事例。
在最佳实施例中,所述操作系统109是一个面向对象的多任务操作系统,该系统支持在每个规定的地址空间内多线索执行。但是,本发明可被用于其它类型的计算机系统中,这些计算机系统包括不具有操作系统的计算机系统。
所述类装载程序116通常是在一个用户首先启动一个执行过程时被调用的,该执行程序要求产生一个适当对象类的对象。所述类装载程序116装入适当的对象类并调用字节代码程序检验程序112去检验装载对象类中所有字节代码程序的完整性。如果所有的方法都被成功的加以检验,那么,产生一个对象类的对象事例,并且所述字节代码解译程序114被调用以执行用户要求的过程,这通常被称做是一个方法。如果用户所要求的过程不是一个字节代码程序或者允许执行该非字节代码程序(这不在本文件的范围之内),那么,所述程序由一个编译程序的执行者(未示出)加以执行。
无论在什么时候,当一个执行的字节代码程序遇到对还没有被装入到所述用户地址空间的对象类的对象方法的调用时,就要调用所述类装载器。所述类装载器116就要再次装载适当的对象类,并调用字节代码程序检验程序112去检验在装载的对象类中所有字节代码程序的完整性。在很多情况下,所述对象类是从诸如图1所示一个服务器104的远程定位计算机(remotelylocated CPU)进行装载的。如果在所装载对象类中的所有方法都被进行了成功的检验,那么,就要产生所述对象类的一个对象事例,并且调用字节代码解译程序114去执行所调用的对象方法。
如图1所示,所述字节代码解译程序114包括工作阵列130,所有当前装载方法的工作表达都被暂时存储在该工作阵列130中。所述工作表达被内部存储到所述解译程序中,并且可以被动态地进行修改以优化执行速度,这将在下面详细地加以描述。
在最佳实施例中,所述字节代码程序解译程序114还包括一个保密过程132或多个指令,用于避免一定数量的相反于保密程序执行请求的程序实践,所述的保密程序或多个指令包括多个保密指令其用于避免在一种方法中的标准装载和存储指令直接访问在其它类事例的一个对象中的专用变量。当试图利用所述程序解译程序执行任意一个这种指令时,它将把这个指令标记为一个保密违反并中止执行含有这个指令的方法。
所述字节代码程序解译程序114还包括一个函数调用置换过程134,用于将过程调用置换到具有一些特殊指令的某个简单方法类型上,所述特殊指令用于对相关的专用变量直接进行访问或修改,或用于直接装载一个相关的恒定值。
用于对象的数据结构
图2示出了在本发明的最佳实施例中用于一个对象的数据结构200。对象类A的一个对象具有对象句柄(object handle)202,该对象句柄202包括到与所述对象相关的方法的一个指针204和到与所述对象相关的数据阵列208的一个指针206。
到所述对象方法的指针204实际上是一个到相关对象类方法的非直接指针。特别是,所述方法指针204指向一个用于对象的对象类的虚拟函数表(VFT)210。每个对象类都具有一个VFT 210,该VFT 210包括所述对象类方法214中每一个的指针212。所述VFT 210还包括用于所述对象类并被称之为类描述符218的一个数据结构的指针216。除了与这里不相关的项(item)以外,所述类描述符218包括用于由所述对象类方法使用的多个变量中每一个变量的数据阵列区距(offset)220(表示在数据阵列208中的什么地方存储所述变量值)。另外,对于每个数据区距(offset)项220来讲,所述的类描述符包括一个变量标识(即:所述变量的名字)加上一个表示所述变量数据类型(例如整数)的指示符和一个表示所述变量是否是一个专用变量的指示符。在某些实施例中,对象的结构比起图2所示的更加复杂,但这些新增加的结构元件与在该文本中所讨论的内容不相关。
图3示出了一个用于存储具有若干“简单方法”的一个对象类方法230的数据结构122-A。就此文件而言,术语“简单方法”的含义被规定为是一种方法,它的特有(sole)功能是(A)回送一个专用变量值,其中,所述专用变量是所述简单过程专用的,(B)把一个规定值存储到所述专用变量中,或(C)回送一个恒定值。
所述字节代码程序解译程序的保密过程132避免使一个类的任一方法对另一类对象的专用变量进行直接访问。
参看图4,与在一个对象类中的方法相关的程序码一开始就被复制到(copied into)所述解译程序的工作阵列中,以形成一个装载方法的工作内部表达。然后可以利用所述解译程序以各种方法对该方法的那个最初工作表达进行修改,以产生所述方法工作表达的优化形式。在本发明的情况下,所述方法的工作表达被进行修改,以使得对简单方法的过程调用在计算方面更加有效。
优化方法解释方法论(Interpretation Methodology)
表1包含有与本发明相关的部分程序解译程序过程的伪代码表达。在表1中使用的伪代码基本上是一个使用通用计算机语言协定的计算机语言。在这里所使用的伪代码被单独开发出来以用于本描述的目的,它的设计很容易被本技术领域的任意一个计算机程序设计者所理解。
参看图5和示于表1中所述程序解译程序过程的伪代码,当需要执行一个方法时,所述方法的一个工作拷贝被装入到解译程序的工作阵列(260)中。在由解译程序执行所述方法期间,该解译程序选择下一个要被执行的指令(262)。如果所选择的指令是一个正在第一次被执行的方法(264-Y)并且所调用的方法是一个简单的方法,该简单方法的特有(sole)功能是(A)回送一个专用变量值,其中,所述专用变量是该简单过程所专用的,(B)把一个规定的值存储到所述专用变量中,或(C)回送一个恒定值(266-Y),那么,利用相应的直接访问指令替换所述的方法调用(268)。
在最佳实施例中,利用将一个基准专用变量的值推入(pushes)所述解译程序的操作栈的特殊目的装载指令置换其特有功能是回送一个专用变量值的简单方法的方法调用:
GetVarSPC专用变量
其中,“GetVarSPC”是Get Variable(取得可变)指令的一种特殊形式,该指令被从禁止一种方法对另一种方法的专用变量进行直接访问的一般保密限制中去除(exempted)了。
在最佳实施例中,利用将一个值从解译程序操作栈存储到基准专用变量中的特殊目的存储指令置换其特有功能是将一个规定值存储到一个规定专用变量中的简单方法的方法调用:
SetVarSPC专用变量
其中,“SetVarSPC”是栈到变量存储指令的一种特殊形式,该指令被从禁止一种方法对另一类对象的专用变量进行直接访问的一般保密限制中去除(exempted)了。
在最佳实施例中,利用取得一个恒定值的指令置换其特有功能是回送一个恒定值的简单方法的方法调用:
Get Constant Value(取得恒定值)
其中,“Get”是用于将一个规定值推入所述解译程序操作栈的指令。
在正被执行方法的工作表达被刷新以后,不管是在步骤264、266还是步骤268,所述解译过程的保密程序都要确定执行所选择的下一指令是否会违反任意一个保密限制(270)。如果不违反,那么,就执行所选择的指令(272)。如果执行所选择的指令将违反任意一个保密限制,诸如是在访问专用变量方面的限制,那么,将标记一个保密违反并中止执行所述的方法(274)。
总之,本发明通过利用等效直接插入直接访问指令置换某些方法调用来优化某些种类的简单方法调用的执行,并以如下的方式来执行优化:每当所述调用方法被重新装载并加以执行时,就要重新产生多个直接插入指令,借此以保证由所述程序所有者或出版者所研制的调用简单方法的任意一个版本在所述调用方法的后续执行过程中被反映出来。
上述参照少数几个特定实施例对本发明的描述,仅仅是对本发明作出的示意性的说明,并且不能被认为是对本发明的限制。在不脱离由所附权利要求规定的本发明的精神和范围的情况下,本专业技术领域内的普通技术人员可以作出多种修改。
                          表1
               程序解译程序的伪代码表达过程:解释程序(方法)
{
将方法装入到内部工作阵列中
Do Forever

  {

  Case(将要执行的下一程序的状态):
     {

     Case=除CetVarSPC,SetVarSPC或Method call以外的任意其它的指令

        {

        标准处理,与本发明不相关

        }

     Case=GetVarSPC或SetVarSPC

        {

        在除正被执行方法以外的方法中中止针对访问专用变量的一般保

        密限制的同时,执行向堆栈装载或存储来自堆栈的指令。

        }

     Case=方法调用

        {
        <!-- SIPO <DP n="9"> -->
        <dp n="d9"/>
      如果这是此方法调用第一次被执行,由于所调用的方法已被装入
         {

         如果所调用的方法的功能仅仅是读出一个专用变量,那么,对

         于所调用的方法去读出那个专用变量来讲,它将不是一个保密

         违反

            {

            在调用方法的内部表示中用一特殊指令替换方法调用,所
            述特殊指令直接访问所述专用变量并将它的值装入到所述

            操作栈中:

               GetVarSPC专用变量

            }

         如果所述调用方法的功能仅仅是把一个值存储到一个专用变

         量中,那么对于所调用方法把一个值存储到那个专用变量中来

         讲,它将不是一个保密违反

            {

            在调用方法的内部表示中用一特殊指令替换方法调用,所

            述特殊指令直接对所述专用变量进行访问并将一个来自操
            作栈的值存储到那个专用变量中:

               SetVarSPC专用变量

         }

         如果所调用方法的功能仅仅是回送一个恒定值

            {

            在调用方法的内部表示中用一特殊指令替换方法调用,所

            述特殊指令直接将所述恒定值装入到所述操作栈中:

               Load ConstantValue

         }

         当情况可以应用标准保密限制时,执行结果指令,或未变化指

         令。

      }/*end of Case=Method Call section/*

  }/*end of Case Statement*/
}/*end of Do Forever loop*/
        <!-- SIPO <DP n="10"> -->
        <dp n="d10"/>
  /*Execution of Method has completed*/

  从所述解译程序中清洗方法的工作表示

  返回

  }

Claims (6)

1.一种计算机系统,包括:
存储装置,用于存储多个对象和多个过程,所述对象中的每一个都包括一个相关对象类的事例和所述过程中的每一个都属于相应的对象类,所述多个过程包括多个简单的过程,其中,由每个所述简单过程执行的整个功能从如下组成的组中进行选择:(A)回送一个专用变量值,其中,所述的专用变量被存储并专用于所述简单过程所属的所述对象类中的一个对象中,(B)把一个规定值存储到所述的专用变量中,(C)回送一个恒定值;和
保密程序解译装置,用于执行所述多个过程中被选择的一些过程,所述解译装置包括一个装载子程序装置,用于产生将被执行的所述过程中第一个过程的工作表达,还包括一个优化子程序装置,用于当被另一个所述过程调用时,优化所述简单过程的执行,当所述解译装置在处理从所述多个过程的第一个过程到第二个过程的过程调用时,所述优化子程序装置确定所述第二过程是否所述简单过程中的一个,和当所述的确定是肯定的时,用一个直接访问指令替换在所述第一过程的所述工作表达中的所述过程调用,其中,所述直接访问指令是从如下组成的组中选择:(A)用于直接回送所述专用变量值的第一指令,(B)用于将一个规定值直接存储到所述专用变量中的第二指令,和(C)用于直接存储所述恒定值的第三指令。
2.如权利要求1所述的计算机系统,其中,
所述解译装置包括多个保密装置,用于避免以下的多个标准指令访问没有存储在驻留所述多个标准指令的过程的对象类的一个对象中的任意一个专用变量,所述这些标准指令是用于将一个变量值装入到一个操作栈并将所述操作栈上的值存储到一个变量上的标准指令;和
所述第一和第二指令是特殊目的指令,即使在所述第一过程和第二过程属于不同的各自对象类的情况下,这些指令也能够对所述的专用变量进行访问,而不会被所述的多个保密装置标记一个保密违反。
3.如权利要求2所述的计算机系统,其中,所述的解译装置包括多个单元,用于当所述第一过程执行结束时,从所述的程序解译装置中清仓所述第一过程的所述工作表达,由此,当再次执行所述的第一过程时,所述解译装置产生所述第一过程的一个新的工作表达。
4.一种操作计算机系统的方法,包括如下步骤:
在计算机存储装置中存储多个对象和多个过程,每个所述的对象包括相关对象类的一个事例和每个所述的过程属于一个相应的对象类,所述多个过程包括多个简单的过程,其中由每个所述简单过程执行的全部功能是根据如下组成的组进行选择的:(A)回送一个专用变量值,其中,所述的专用变量专用于所述简单过程所属的所述对象类的一个对象,(B)将一个规定值存储到所述的专用变量中,和(C)回送一个恒定值;
在源程序解译装置的控制下,执行所述多个过程中所选择的一个,包括产生将被执行的所述多个过程中第一个过程的一个工作表达,和当由所述第一过程调用时优化所述多个简单过程中任意一个的执行,所述的优化步骤包括当所述解译装置在处理从所述多个过程的第一个过程到第二个过程的过程调用时,确定所述的第二过程是否所述多个简单过程中的一个,和当所述的确定结果是肯定的时,利用一个直接访问指令置换在所述第一过程的所述工作表达中的所述过程调用,其中,所述直接访问指令是从如下组成的组中选择的:(A)一个用于直接回送所述专用变量值的第一指令,(B)一个用于直接将一个规定值存储到所述专用变量中的第二指令,和(C)一个用于直接存储所述恒定值的第三指令。
5.如权利要求4所述的方法,其中,所述的第一和第二指令是特殊目的指令,所述的方法包括如下步骤:
避免以下的标准指令访问驻留在所述标准指令的过程以外的任意一个专用变量,所述这些标准指令是用于将一个变量值装入到一个操作栈并将所述操作栈上的值存储到一个变量上的标准指令;和当任意一个标准指令的执行需要对任意一个专用变量进行访问、而该专用变量并没有存储在驻留有所述标准指令的过程的所述对象类的一个对象中时,标记一个保密违反;和
允许所述第一和第二指令去访问所述的专用变量,并且即使当所述第一过程和所述第二过程属于不同的各自对象类时,也不会被标记一个保密违反。
6.如权利要求5所述的方法,包括:
当所述第一过程的执行结束时,从所述解译装置中清仓所述第一过程的所述工作表达,以使当再次执行所述的第一过程时,所述的解译装置将产生一个新的所述第一过程的工作表达。
CN96121868A 1995-12-08 1996-12-06 保密解译程序优化运行时调用专用变量函数的系统和方法 Expired - Fee Related CN1117318C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/569,754 US5794044A (en) 1995-12-08 1995-12-08 System and method for runtime optimization of private variable function calls in a secure interpreter
US569754 1995-12-08

Publications (2)

Publication Number Publication Date
CN1158459A CN1158459A (zh) 1997-09-03
CN1117318C true CN1117318C (zh) 2003-08-06

Family

ID=24276720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96121868A Expired - Fee Related CN1117318C (zh) 1995-12-08 1996-12-06 保密解译程序优化运行时调用专用变量函数的系统和方法

Country Status (10)

Country Link
US (1) US5794044A (zh)
EP (1) EP0778521B1 (zh)
JP (1) JPH1040107A (zh)
KR (1) KR100478025B1 (zh)
CN (1) CN1117318C (zh)
AU (1) AU712005B2 (zh)
CA (1) CA2191411C (zh)
DE (1) DE69621751T2 (zh)
SG (1) SG75109A1 (zh)
TW (1) TW341687B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6385660B2 (en) 1997-10-06 2002-05-07 Sun Microsystems, Inc. Site specific message dispatch in object-oriented systems
US6317796B1 (en) * 1997-10-06 2001-11-13 Sun Microsystems, Inc. Inline database for receiver types in object-oriented systems
US6295607B1 (en) * 1998-04-06 2001-09-25 Bindview Development Corporation System and method for security control in a data processing system
US6061520A (en) * 1998-04-07 2000-05-09 Sun Microsystems, Inc. Method and system for performing static initialization
US6681387B1 (en) 1999-12-01 2004-01-20 Board Of Trustees Of The University Of Illinois Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit
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
US6978448B1 (en) 2000-06-12 2005-12-20 Sun Microsystems, Inc. Method and apparatus for rewriting bytecodes to minimize runtime checks
US7086044B2 (en) * 2001-03-22 2006-08-01 International Business Machines Corporation Method, article of manufacture and apparatus for performing automatic intermodule call linkage optimization
US7028293B2 (en) * 2001-03-30 2006-04-11 Microsoft Corporation Constant return optimization transforming indirect calls to data fetches
FR2827974B1 (fr) * 2001-07-26 2005-02-11 Trusted Logic Procede pour la compression d'un code interprete par analyse semantique
FR2828296B1 (fr) * 2001-08-03 2003-12-12 Trusted Logic Procede de compression de code objet interprete par factorisation d'expressions arborescentes
US20030131347A1 (en) * 2001-10-12 2003-07-10 Allison David S. Method and apparatus for runtime binding of object members
DE10216602A1 (de) * 2002-04-15 2003-10-30 Giesecke & Devrient Gmbh Optimierung von compilergeneriertem Programmcode
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
JP4012517B2 (ja) * 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
US20060059471A1 (en) * 2004-09-15 2006-03-16 Microsoft Corporation Calling non-public types
US7797690B2 (en) * 2005-03-15 2010-09-14 International Business Machines Corporation System, method and program product to optimize code during run time
US20090007068A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Accessing Non-Public Code
US8671456B2 (en) 2012-06-26 2014-03-11 Sap Portals Israel Ltd. Accessing restricted resources in computer programming
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
TWI552781B (zh) * 2014-09-30 2016-10-11 Liquid suction and discharge filter
US9729671B2 (en) * 2014-10-05 2017-08-08 YScope Inc. Systems and processes for computer log analysis
US9841972B2 (en) * 2014-12-17 2017-12-12 Cisco Technology, Inc. Securing secret information in source code verification and at runtime
CN108614702B (zh) * 2016-12-28 2022-02-11 阿里巴巴集团控股有限公司 字节码优化方法及装置
CN109032572B (zh) * 2017-06-08 2023-03-31 阿里巴巴集团控股有限公司 一种基于字节码的java程序方法内联的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5307499A (en) * 1990-11-30 1994-04-26 Singapore Computer Systems Limited Interpretive object-oriented facility which can access pre-compiled classes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775932A (en) * 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US5280614A (en) * 1990-08-21 1994-01-18 International Business Machines Corporation Apparatus and method for controlling access to data using domains
JPH05257664A (ja) * 1991-12-12 1993-10-08 Internatl Business Mach Corp <Ibm> バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法
US5319784A (en) * 1991-12-18 1994-06-07 International Business Machines Corp. System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure
JP2794523B2 (ja) * 1993-11-26 1998-09-10 日本アイ・ビー・エム株式会社 アレイ関数をもつプログラミング言語におけるインライン展開方法
US5590266A (en) * 1994-10-11 1996-12-31 International Business Machines Corporation Integrity mechanism for data transfer in a windowing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5307499A (en) * 1990-11-30 1994-04-26 Singapore Computer Systems Limited Interpretive object-oriented facility which can access pre-compiled classes

Also Published As

Publication number Publication date
EP0778521B1 (en) 2002-06-12
AU712005B2 (en) 1999-10-28
AU7188996A (en) 1997-06-12
SG75109A1 (en) 2000-09-19
DE69621751D1 (de) 2002-07-18
JPH1040107A (ja) 1998-02-13
CA2191411A1 (en) 1997-06-09
EP0778521A3 (en) 1999-05-12
TW341687B (en) 1998-10-01
EP0778521A2 (en) 1997-06-11
CA2191411C (en) 2003-05-06
KR970049812A (ko) 1997-07-29
DE69621751T2 (de) 2003-01-30
US5794044A (en) 1998-08-11
CN1158459A (zh) 1997-09-03
KR100478025B1 (ko) 2005-06-27

Similar Documents

Publication Publication Date Title
CN1117318C (zh) 保密解译程序优化运行时调用专用变量函数的系统和方法
US5359721A (en) Non-supervisor mode cross address space dynamic linking
US6272674B1 (en) Method and apparatus for loading a Java application program
US6505344B1 (en) Object oriented apparatus and method for allocating objects on an invocation stack
US5414854A (en) Object-oriental system for managing shared libraries
CN1119756C (zh) 用于进行静态初始化的方法和系统
US8341609B2 (en) Code generation in the presence of paged memory
CN109196476B (zh) 共享垃圾收集器的不同类型图之间的无缝高性能互操作性
US20200249925A1 (en) On-demand loading of dynamic scripting language code for reduced memory usage
AU2001242028B2 (en) System and method for preloading classes in a data processing device that does not have a virtual memory manager
KR19990064026A (ko) 컴퓨터 시스템 또는 그 프로그램이 중지될 필요가 없는 객체 지향형 메쏘드 유지 보수 메카니즘
AU2001242028A1 (en) System and method for preloading classes in a data processing device that does not have a virtual memory manager
Goldberg et al. Alfalfa: distributed graph reduction on a hypercube multiprocessor
US7210124B2 (en) Reformulating resources with nodes reachable from defined entry points
US6223179B1 (en) Database server for handling a plurality of user defined routines (UDRs) expressed in a plurality of computer languages
WO2003019363A1 (en) Application class extensions
US10572275B2 (en) Compatible dictionary layout
CN1592887A (zh) 一种移动通信设备应用程序处理系统
Meijer et al. Overcoming independent extensibility challenges
US20090044195A1 (en) method for performing tasks based on differences in machine state
KR102189125B1 (ko) 로그 수집 시스템 및 그 수집 방법
US6996825B2 (en) Method and apparatus for efficient object sub-typing
CN114185556A (zh) 一种智能合约部署方法、装置、设备以及存储介质
US7007016B2 (en) Support for concurrent active SQL statements having shared SQL context information
Mailund et al. Generic Lists and Trees

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1000847

Country of ref document: HK

C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee