CN101819536B - 一种面向粒的程序构造方法 - Google Patents
一种面向粒的程序构造方法 Download PDFInfo
- Publication number
- CN101819536B CN101819536B CN2010101728319A CN201010172831A CN101819536B CN 101819536 B CN101819536 B CN 101819536B CN 2010101728319 A CN2010101728319 A CN 2010101728319A CN 201010172831 A CN201010172831 A CN 201010172831A CN 101819536 B CN101819536 B CN 101819536B
- Authority
- CN
- China
- Prior art keywords
- program
- grain
- class
- individual
- context
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种面向粒的程序构造方法,该方法通过编写GOP程序代码并将该代码通过编译生成个体程序的类字节码文件、粒体字节码文件、影子类字节码文件、个体配置文件以及该个体程序对应的粒树;通过个体树得到的个体程序的类字节码文件、粒体字节码文件和影子类字节码文件。动态实时监测的运行程序适合性,若发现不适合现象,则从粒库中查找相似粒或者编写新的粒加入粒库,以查找或编写的相似粒替换被中断的运行程序中不适合的粒。本发明的方法是在观察程序的不适合性现象的基础上提出的,引入粒作为系统的基本模块,并将程序所处的上下文作为编程要素,通过动态监测,动态替换从而保证程序对于环境的适合性,有效延长程序的生命周期。
Description
技术领域
本发明属于计算机理论领域,涉及一种程序构造方法,尤其是一种面向粒的程序构造方法。
背景技术
过程语言如Fortran、Pascal和C等可以用来定义直线执行的程序,程序开始于某一点,一步一步执行至终点。这种模式中,设计理念体现在相继执行的程序单元中。直线的模块划分体现在函数调用中,函数调用允许程序执行从主程序跳转到子程序,又跳回主程序。子程序的使用使程序更有效的实现一般的程序。但是,随着程序规模的不断增大,程序越来越复杂,过程式语言也变得很复杂并且很难维护。
面向对象方法的出现把系统状态变成一些单独的对象,在这些对象中可以私有化系统状态,并且通过公有的函数控制这些状态。经过结构化和面向对象思想的不断发展,现代软件的开发都朝着高内聚和低耦合的方向发展。程序的功能分解为各个功能模块。高级语言通过结构化抽象等方法模块化程序,面向对象语言通过对象和类等概念,这又进一步通过集合一个实体的行为和隐藏其内部实现提高模块的内聚、降低模块间的耦合。
面向对象相对于传统设计语言和软件设计方法有许多优越性:符合人类认识和分析事物的思维习惯;代码是可高度重用的,可维护的。实现了功能模块的组件化;代码是共享的,可继承的,减少了软件设计中的代码量等。但是,OOP也不可能是完美无缺的,近些年出现了很多针对OOP的不足提出新的语言构建方法和相应的实现。
程序所面临的上下文常常改变,比如程序所面临的输入、系统可用内存、并行系统中的处理机个数等。从某种意义上讲,传统编程机制隐式地蕴含了程序与上下文之间的关系,不过其潜在地假定程序与上下文之间的关系是固定不变的。然而,易变的上下文使得编程时假定的程序与上下文之间的匹配关系常常被破坏。假设一个类拥有无返回类型方法m。对于不同的情况,方法m可能需要进行不同的行为演化来适应新环境。传统的编程模型可能试图使用继承关系,通过定义该类的子类来对行为的多个候选实现进行分组,解决这个问题。然而,虽然继承关系可通过在子类中重载基类方法的方式,实现该方法的行为版本,但它不足以用来为某一个对象的某个方法编写多个候选行为实现,换句话说,静态继承关系不能支持对象行为的动态变化。当然也可考虑通过使用不同的方法名称来代表每个实现,或者通过方法的不同参数来指示哪个实现被执行。但是这要求客户端,也就是将要调用这个方法的对象,对实现的细节了如指掌。这样就破坏了类的封装性。
面向粒(Granule Oriented Programming,GOP)程序构造方法就是在观察程序的不适合性现象的基础上提出的。程序的运行与其支撑环境是密不可分的。按照Wiki定义,计算机程序是给计算机提供的指令,计算机需要程序以产生动作,而程序仅当它的指令被计算机的处理器执行时才有意义。可以看出,一个有确定意义的程序除了代码之外还默认地隐含了在什么计算机上运行。完美的程序一旦运行在陌生的机器上,会产生预料不到的结果甚至不能够正常运行下去,由此引出了程序与机器之间适合性问题。
目前的各种编程语言都没有关注程序适合性问题,面向粒的程序构建方法中,用粒来指代那些适合性可度量的、可以被动态替换的构成程序的单位。如果程序出现了不适合性,这些不适合性被局部化到不适合的粒上面,从而用更适合的粒进行替换,以达到改善程序适合性的目标。
发明内容
本发明的目的在于克服上述现有程序构建方法没有关注程序适合性缺点,提供一种面向粒的程序构造方法,该方法是在观察程序的不适合性现象的基础上提出的,引入粒作为系统的基本模块,并将程序所处的上下文作为编程要素,通过动态监测,动态替换从而保证程序对于环境的适合性,有效延长程序的生命周期。
本发明的目的是通过以下技术方案来解决的:
该种面向粒的程序构造方法,具体按照以下步骤:
(1)编写GOP程序代码
所述的GOP程序是一个种子程序或个体程序;所述种子程序是一个不与任何上下文相关联且不包含任何粒的程序,所述个体程序是一个与已有上下文相关联的程序,个体程序由种子程序和依附于种子程序的粒组成;
(2)将编写的GOP程序代码通过编译生成个体程序的类字节码文件、粒体字节码文件、影子类字节码文件、个体配置文件以及该个体程序对应的粒树;将粒体字节码文件和影子类字节码文件存入粒库,所述粒库是一个保存了所有粒的存储单元;
(3)通过个体树加载运行步骤(2)得到的个体程序的类字节码文件、粒体字节码文件和影子类字节码文件,所述类字节码文件、粒体字节码文件和影子类字节码文件运行在实际上下文下,所述实际上下文的取值实时变化;
(4)动态实时监测的运行程序适合性,若发现不适合现象,中断运行程序,进入步骤(5);若运行程序因未引入的上下文而非正常终止,则进入步骤(9),否则程序继续运行直至结束;
(5)从粒库中查找相似粒,若找到相似粒则进入步骤(6),若未找到相似粒进入步骤(7);
(6)以查找或编写的相似粒替换被中断的运行程序中不适合的粒,若相似粒替换后满足适合性,则进入步骤(8),若相似粒替换后不满足适合性,则进入步骤(5);
(7)编写新的包含相似粒的个体程序,并将新编写的粒加入粒库,进入步骤(6);如果不编写新的个体程序,进入步骤(10);
(8)演化成新的个体程序,被中断的运行程序结束中断继续运行,进入步骤(4);
(9)引入新的上下文,编写相应的个体程序,进入步骤(2),如果不编写个体程序,进入步骤(10);
(10)程序终止并且不能再运行。
进一步,以上步骤(1)中,所述的上下文是指:支持程序的所有非功能性因素的综合,上下文分为期望上下文和实际上下文,程序的期望上下文是该程序的理想的运行环境描述,一个程序在自己期望上下文中总是适合的;实际上下文是程序实际运行的环境的描述。
以上步骤(1)中,所述粒由粒名、类名、粒体和影子类构成,其中类名用来表明该粒所依附的类,将该类称为粒的根类,粒体用来指定粒的期望环境,粒体可以定义自身的成员并且粒体中必须包含一个适合性判断方法,适合性判断方法返回真或假;所述影子类是对种子程序中与该影子类相同名字的类的改进,是在不同上下文下类行为的不同体现,并且只是在相应粒体适合性判断方法为真后才有效。
以上步骤(2)中,所述的个体配置文件记录个体程序的类层次结构以及各类依附的粒的XML文件。
以上步骤(2)中,所述的粒树反映个体程序所包含的粒和粒的层次的XML文件。
以上步骤(4)中,所述的不适合现象是指:将要运行的程序段所属的粒的适合性判断方法的返回值为假。
以上步骤(4)中在中断运行程序时,在安全点中断程序运行。
以上步骤(5)中,所述的相似粒是指:两个粒在其各自对应的粒树上的所有祖先粒的层次结构相同,且这两个粒依附的类相同,同时这两个粒对应的上下文名称和次序相同。
本发明具有以下几点有益效果:
1)本发明用粒来指代那些适合性可度量的、可以被动态替换的构成程序的单位。程序运行时动态监测运行中的程序的适合性,如果运行中的程序出现了不适合现象,这些不适合性被局部化到不适合的粒上面,从而用更适合的粒进行替换,以达到改善程序适合性的目标。使得程序自动演化成为适合当前运行环境的适合的版本。同时也避免了程序因为隐含的适合性问题而导致的程序运行出错,并能延长了程序的生命周期。
2)本发明对于可重用性也提供了很大的支持,对于应用领域的粒建立粒库,粒库中包含了适应不同上下文、完成不同功能的粒。当运行程序中某个粒发生不适合时,从粒库中选择适合的粒,在执行过程中替换发生不适合的粒。由于粒库保存了该应用领域所有演化过程中的粒,这使得那些不适合当前实际上下文而被替换的粒依然得到保存。并且在实际上下文再次变化时可能被再次使用,因而程序的可重用性得到提高。
3)本发明是对OOP(面向对象编程)的完善和补充,并不是对OOP方法的完全替代,面向粒的程序构建方法继承了OOP的优点,同时把程序运行环境抽象为上下文变量,根据上下文变量将程序分为相关和不相关部分,对相关部分通过追加粒来改进,通过粒的适合性监测和替换机制,使得程序的行为与实际上下文间动态适应。
附图说明
图1是面向粒的程序构造方法流程图;
图2是粒的构成图;
图3是粒库中粒的加载运行机制图;
图4是相同种子的个体间相似粒替换展示图。
具体实施方式
GOP思想目前实现为对Java语言的扩展,称作GranuleJ。GranuleJ里面,对象代码体现在Java类里面,粒体和影子类代码遵循我们设计的语法语义规则。
下面结合附图对本发明做进一步详细描述:
参见图1:面向粒的程序构造方法的流程按照以下步骤:
(1)编写GOP程序代码
所述的GOP程序是一个种子程序或个体程序;所述种子程序是一个不与任何上下文相关联且不包含任何粒的程序,所述个体程序是一个与已有上下文相关联的程序,个体程序由种子程序和依附于种子程序的粒组成;
步骤(1)涉及的GOP程序构建方法的相关概念和具体内容:
1)上下文
上下文是对程序运行环境的一种抽象描述。总的来看,解决领域问题时支持程序的所有非功能性因素的综合为该程序的上下文。
上下文分为期望上下文和实际上下文。程序的期望上下文是该程序的理想的运行环境描述,一个程序在自己的期望上下文中总是适合的;实际上下文是程序实际运行的环境的描述。
另一方面,影响到程序整体的外界系统的上下文称为环境上下文,比如程序运行环境的硬件条件,网络状态等。而对于组成程序的各个模块,不仅受环境上下文影响,还有领域上下文作用在其上,领域上下文指软件系统内部所有与某个模块交互的模块的状态,根据这些模块的状态当前模块可以有不同的表现。
2)粒
GOP领域里,构成软件系统的基本模块包括粒。粒是能感知其生存的环境(即上下文),并完成某个特定功能的、可单独执行、可动态装卸的代码段。GOP最大的突破在于粒不单纯是完成特定功能的代码块,粒是与其期望上下文“共生”的功能块。粒的期望上下文是该程序的理想的运行环境描述,一个粒在自己的期望上下文中总是适合的。粒不仅关心其本身作为组成软件系统的功能模块,粒同时是与其期望的运行环境,即我们提及的上下文这些非功能因素紧密结合的。
粒分为底层粒和高层粒:底层粒是一个最小的粒单元,它不包含子粒,对于问题领域来讲它的执行过程是透明的,是一步完成的、不可再分的,或者编程人员认为该粒的所有内容对应的上下文都是一致的。高层粒是由底层粒或者高层粒通过一定逻辑组合在一起的,高层粒在不适合发生时,可能不需要全部进行替换,适合性监测模块会根据实际上下文局部化到某个更低层的粒。
参见图2,粒210是GOP程序的一阶实体,粒提供可以将程序功能代码和其期望的环境相关联的方法,所以粒需要包括粒名220、类名230、粒体240和影子类250四部分内容。其中类名用来表明该粒所依附的类,将该类称为粒的根类,粒处于OOP程序中类层次结构中的某个位置,粒依附于基本OOP程序中某个类,将该类称为粒的根类。粒体是程序对于程序运行环境和适合性的关注,粒体中可以定义粒成员,在粒本身或影子类中可以使用,粒体还必须包含一段适合性计算方法,方法中定义粒在何种环境中适合运行、何种环境下不适合,并返回真或假值,由GOP程序运行环境获取,根据获取到的值决定该粒是否适合在当前上下文环境中运行。所述影子类是对种子程序中与该影子类相同名字的类的改进,是在不同上下文下类行为的不同体现,并且只是在相应粒体适合性判断方法为真后才有效。当监测到实际上下文与该粒中粒体所描述的粒的期望上下文适合时,影子类发生作用,类的行为被改变。
GOP并不破坏OOP对象的继承、封装和多态特性。粒体只是对所处环境的判断,而影子类在软件系统中处于与类相同的位置,所有对象的行为都是封装在对象内部,也只使用消息发送来与其他类的对象发生交互,只是在GOP中,一部分对象的行为可以在影子类内定义。
多个粒可以依附于类层次中同一个类,彼此之间是独立的,各个粒关注不同的上下文,描述在不同上下文环境下类应该表现出来的不同行为。同一个类和该类的各个粒体、影子类构成了不同的粒,这些粒刻画了完成相似功能的实体在不同上下文中不同的行为表现,这些粒互称为相似粒。当程序运行时的上下文不断发生改变、切换时,某个粒发生了不适合现象,可以使用其与当前实际上下文适合的相似粒来替换当前粒。
粒可以依附于类层次结构中任何一个类而存在,类层次结构可以看做一颗向下生长的树,树的根节点在Java中是Object类,树结构中上层类总是比下层类更抽象,越是处于下层的类越具体,相应地,根类位于上层的粒称上层粒,根类位于较低层的粒称下层粒,由此形成粒之间的层次结构。当程序发生不适合时,首先检查最局部的粒是否适合,如果不适合,替换最局部的粒,否则,检查上层粒是否适合,依此类推。这样,程序的不适合性总可以局部化到最小,替换付出的代价也最小。
3)种子程序,个体程序
一个程序的适合性是指该程序的期望上下文与实际上下文之间的匹配程度。GOP定义最初的程序为个体程序,种子程序是程序演化过程的起点,此时程序中没有粒体、影子类等,并且程序的类层次是一个树结构。程序执行中如果发现不适合的状况,程序停止,程序员针对不适合性编写相应粒体和影子类,称加入了粒体和影子类后的程序为个体程序。网络环境中,多个虚拟机假设最开始运行种子相同的程序,由于所处的具体环境不同,环境的变化过程不同,所以不适合发生的原因和位置不同,依据GOP程序的演化机制,会在多个虚拟机上产生不同的个体程序。虽然这些个体程序本身不相同,但是具有相同的种子程序。当不适合性在某个虚拟机上被发现时,使用种子-个体关联方法,可以在本地或别的虚拟机上寻找种子程序相同的个体程序,进一步寻找相似粒,将不适合局部化,替换最小的粒。
(2)将编写的GOP程序代码通过编译生成个体程序的类字节码文件、粒体字节码文件、影子类字节码文件、个体配置文件以及该个体程序对应的粒树;将粒体字节码文件和影子类字节码文件存入粒库,所述粒库是一个保存了所有粒的存储单元;
目前实现的GranuleJ系统内部,编译器以粒体、影子类和类文件作为输入,对粒、影子类和类分别产生二进制字节码作为输出,同时生成种子文件。由于GOP引入上下文变量、粒体和影子类作为程序的一阶实体,所以字节码需要与标准Java不同,GOP系统设计了粒体和影子类的字节码,这些实体是标准Java虚拟机不能识别的。
参照标准Java和GOP语义,对粒体和影子类分别设计字节码结构。粒体的字节码结构如下表1所示,影子类的字节码结构如下表2所示:
表1粒体字节码结构
项 | 描述 |
Magic | 粒体文件魔数,使GVM明白当前加载的是粒体 |
Version | 版本信息 |
Constant_pool | 与类相同,该项存放了粒体中各种文字字符串、粒名、方法名等常量 |
Access_flag | 指名了粒体的访问标志,粒体统一作为private处理 |
This_granule | 指向表示该粒体全限定名称的字符串常量的指针 |
Super_Granule | 指向表示父粒体全限定名称的字符串常量的指针 |
Root_class | 指向表示根类全限定名称的字符串常量的指针 |
Fields | 粒体中声明的字段,不包括粒体对应的根类中的字段 |
Fitness_Method | 粒体中唯一的适合性判断方法,返回值类型是boolean型 |
Attributes | 该粒体中所定义的属性的基本信息 |
表2影子类的字节码结构
参考表1、表2:影子类字节码中各项与粒中各项相似,不同之处在于,影子类不存在superclass,此项始终为0。影子类字节码中包含seed_class项来指向shadowclass的种子类seedclass,granule项来指向shadowclass的相关粒granule。
(3)通过个体树加载运行步骤(2)得到的个体程序的类字节码文件、粒体字节码文件和影子类字节码文件,所述类字节码文件、粒体字节码文件和影子类字节码文件运行在实际上下文下,所述实际上下文的取值实时变化;
(4)动态实时监测的运行程序适合性,若发现不适合现象,中断运行程序,进入步骤(5);若运行程序因未引入的上下文而非正常终止,则进入步骤(9),否则程序继续运行直至结束;
(5)从粒库中查找相似粒,若找到相似粒则进入步骤(6),若未找到相似粒进入步骤(7);
参考图3:GOP对于应用领域的粒建立粒库310,粒库中包含了适应不同上下文、完成不同功能的粒210。步骤(2)生成的类、粒体和影子类字节码和种子文件加载运行,动态地监测程序所处上下文的变化,实时地根据当前实际上下文选择适合的粒运行,并在某个粒发生不适合时,从粒库中选择适合的粒320,构建新的目标类330,根据粒的根类信息321,在执行过程中替换相应位置处331发生不适合的粒,使程序的生命周期延长。
(6)以查找或编写的相似粒替换被中断的运行程序中不适合的粒,若相似粒替换后满足适合性,则进入步骤(8),若相似粒替换后不满足适合性,则进入步骤(5);
参考图4:每一次粒的替换都形成新的个体程序410、411,这些个体程序的形态各异,但都是从相同种子程序演化而来,由个体程序-种子程序关联方法,可以在不同个体程序间根据位置信息确定相似粒421、422。个体程序中包含许多粒,不同层次的相似粒之间可以互相替换,由此会形成更多个体程序,这些个体程序被保存入粒库,以提高粒的复用性。
(7)编写新的包含相似粒的个体程序,并将新编写的粒加入粒库,进入步骤(6);如果不编写新的个体程序,进入步骤(10);
(8)演化成新的个体程序,被中断的运行程序结束中断继续运行,进入步骤(4);
(9)引入新的上下文,编写相应的个体程序,进入步骤(2),如果不编写个体程序,进入步骤(10);
(10)程序终止并且不能再运行。
综上所述,GOP是对OOP的完善和补充,并不是对OOP方法的完全替代,GOP继承了OOP的优点,同时把程序运行环境抽象为上下文变量,根据上下文变量将程序分为相关和不相关部分,对相关部分通过追加粒来改进,通过粒的适合性监测和替换机制,使得程序的行为与实际上下文间动态适应。提高了代码的复用性,有效延长程序的生命周期。
Claims (5)
1.一种面向粒的程序构造方法,其特征在于,按照以下步骤:
(1)编写面向粒GOP程序代码
所述的面向粒GOP程序是一个种子程序或个体程序;所述种子程序是一个不与任何上下文相关联且不包含任何粒的程序,所述个体程序是一个与已有上下文相关联的程序,个体程序由种子程序和依附于种子程序的粒组成;所述的上下文是指:支持程序的所有非功能性因素的综合,上下文分为期望上下文和实际上下文,程序的期望上下文是该程序的理想的运行环境描述,一个程序在自己期望上下文中总是适合的;实际上下文是程序实际运行的环境的描述;
所述粒由粒名、类名、粒体和影子类构成,其中类名用来表明该粒所依附的类,将该类称为粒的根类,粒体用来指定粒的期望环境,粒体可以定义自身的成员并且粒体中必须包含一个适合性判断方法,适合性判断方法返回真或假;所述影子类是对种子程序中与该影子类相同名字的类的改进,是在不同上下文下类行为的不同体现,并且只是在相应粒体适合性判断方法为真后才有效;
(2)将编写的面向粒GOP程序代码通过编译生成个体程序的类字节码文件、粒体字节码文件、影子类字节码文件、个体配置文件以及该个体程序对应的粒树;将粒体字节码文件和影子类字节码文件存入粒库,所述粒库是一个保存了所有粒的存储单元;
(3)通过个体树加载运行步骤(2)得到的个体程序的类字节码文件、粒体字节码文件和影子类字节码文件,所述类字节码文件、粒体字节码文件和影子类字节码文件运行在实际上下文下,所述实际上下文的取值实时变化;
(4)动态实时监测运行程序的适合性,若发现不适合现象,中断运行程序,进入步骤(5);若运行程序因未引入的上下文而非正常终止,则进入步骤(9),否则程序继续运行直至结束;
(5)从粒库中查找相似粒,若找到相似粒则进入步骤(6),若未找到相似粒进入步骤(7);所述的相似粒是指:两个粒在其各自对应的粒树上的所有祖先粒的层次结构相同,且这两个粒依附的类相同,同时这两个粒对应的上下文名称和次序相同;
(6)以查找或编写的相似粒替换被中断的运行程序中不适合的粒,若相似粒替换后满足适合性,则进入步骤(8),若相似粒替换后不满足适合性,则进入步骤(5);
(7)编写新的包含相似粒的个体程序,并将新编写的粒加入粒库,进入步骤(6);如果不编写新的个体程序,进入步骤(10);
(8)演化成新的个体程序,被中断的运行程序结束中断继续运行,进入步骤(4);
(9)引入新的上下文,编写相应的个体程序,进入步骤(2),如果不编写个体程序,进入步骤(10);
(10)程序终止并且不能再运行。
2.根据权利要求1所述的面向粒的程序构造方法,其特征在于,步骤(2)中,所述的个体配置文件是记录个体程序的类层次结构以及各类依附的粒的XML文件。
3.根据权利要求1所述的面向粒的程序构造方法,其特征在于,步骤(2)中,所述的粒树是反映个体程序所包含的粒和粒的层次的XML文件。
4.根据权利要求1所述的面向粒的程序构造方法,其特征在于,步骤(4)中,所述的不适合现象是指:个体程序中的粒所定义的适合性判断方法在执行完后返回一个为假的值。
5.根据权利要求1所述的面向粒的程序构造方法,其特征在于,步骤(4)中在中断运行程序时,在安全点中断程序运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101728319A CN101819536B (zh) | 2010-05-14 | 2010-05-14 | 一种面向粒的程序构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101728319A CN101819536B (zh) | 2010-05-14 | 2010-05-14 | 一种面向粒的程序构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101819536A CN101819536A (zh) | 2010-09-01 |
CN101819536B true CN101819536B (zh) | 2012-11-28 |
Family
ID=42654651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101728319A Active CN101819536B (zh) | 2010-05-14 | 2010-05-14 | 一种面向粒的程序构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101819536B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530147B (zh) * | 2013-09-17 | 2016-08-24 | 西安交通大学 | 一种面向粒的移动终端代码更新方法 |
CN104778926B (zh) | 2015-05-11 | 2016-03-30 | 京东方科技集团股份有限公司 | 一种驱动电路、显示基板及其驱动方法、显示装置 |
CN107992295B (zh) * | 2017-12-29 | 2021-01-19 | 西安交通大学 | 一种面向粒的动态算法选择方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1155694A (zh) * | 1995-12-04 | 1997-07-30 | 国际商业机器公司 | 用动态语言生成子类系统对象模型类的方法和装置 |
CN101589380A (zh) * | 2006-01-30 | 2009-11-25 | 微软公司 | 基于上下文的代码分析 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20031811A (fi) * | 2003-12-11 | 2005-06-12 | Erkki Laitila | Menetelmä oliopohjaisen koodin simuloimiseksi ja analysoimiseksi ja vastaava tuote |
-
2010
- 2010-05-14 CN CN2010101728319A patent/CN101819536B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1155694A (zh) * | 1995-12-04 | 1997-07-30 | 国际商业机器公司 | 用动态语言生成子类系统对象模型类的方法和装置 |
CN101589380A (zh) * | 2006-01-30 | 2009-11-25 | 微软公司 | 基于上下文的代码分析 |
Also Published As
Publication number | Publication date |
---|---|
CN101819536A (zh) | 2010-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9600411B2 (en) | System and method for determining an object's lifetime in an object oriented environment | |
US8904381B2 (en) | User defined data partitioning (UDP)—grouping of data based on computation model | |
Benelallam et al. | Distributed Model-to-model Transformation with ATL on MapReduce | |
US20120089962A1 (en) | Unchanged Object Management | |
Bevemyr et al. | Reform Prolog: the language and its implementation | |
CN101819536B (zh) | 一种面向粒的程序构造方法 | |
Diener et al. | Communication-aware process and thread mapping using online communication detection | |
Chakravarthy | Architectures and monitoring techniques for active databases: An evaluation | |
CN107992295A (zh) | 一种面向粒的动态算法选择方法 | |
Zheng et al. | Comprehensive multiplatform dynamic program analysis for Java and android | |
Schlimbach et al. | Concurrent collections on distributed memory theory put into practice | |
Gijsbers et al. | An efficient scalable runtime system for macro data flow processing using S-Net | |
Nelson et al. | Profiling field initialisation in Java | |
Wang | Thin serverless functions with graalvm native image | |
Nguyen et al. | Understanding and combating memory bloat in managed data-intensive systems | |
CN110083339A (zh) | 一种新型计算机编程语言 | |
US11449317B2 (en) | Detection of semantic equivalence of program source codes | |
Batko et al. | Actor model of Anemone functional language | |
Ansaloni et al. | Enabling modularity and re-use in dynamic program analysis tools for the java virtual machine | |
Launay et al. | The Do! project: Distributed Programming Using Java | |
Shafiei et al. | Modeling class loaders in java pathfinder version 7 | |
Coetzee et al. | Towards unified secure on-and off-line analytics at scale | |
Batko et al. | Actor Model of a New Functional Language-Anemone | |
Castro et al. | Customisable handling of java references in prolog programs | |
Wang et al. | A process algebra-based detection model for multithreaded programs in communication system |
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 |