混合式动态码编译装置、方法及其服务系统的制作方法_3

文档序号:8339436阅读:来源:国知局
接的混合式动态码编译装置将动态码分为能编译的部分与不能编译的部分,其中能编译的部分被转码为静态码,而不能编译的部分则被进行改写,以产生改写后的动态码,其中改写后的动态码具有原始动态码与静态码进行沟通的功能传呼。
[0048]接着,服务器22可以通过因特网23将混合式动态码编译装置所产生的静态码与改写后的动态码传送给所述多个终端装置24a?24e,以使终端装置24a?24e根据静态码与改写后的动态码以呈现网页开发者20所撰写的原始的动态码所对应的动态或互动的网页。另外,服务器22还可以通过因特网23将文件标示语言送给终端装置24a?24e。
[0049]在此请注意,本发明并不限制混合式动态码编译装置内建或外接于服务器22。请参照图2B,图2B是本发明另一实施例的服务系统的示意图。相较于图2A,于图2B的实施例中,服务系统2’的服务器22’并未内建或外接有混合式动态码编译装置,而是计算机装置21’内建或外接有混合式动态码编译装置。换言之,计算机装置21’直接将网页开发者20所撰写的文件标示语言与动态码转换为静态码与改写后的动态码,且将静态码与改写后的动态码通过因特网23传送给服务器22’。接着终端装置24a?24e根据静态码与改写后的动态码以呈现网页开发者20所撰写的原始的动态码所对应的动态或互动的网页。
[0050]请参照图2C,图2C是本发明另一实施例的服务系统的示意图。相较于图2A,于图2C的实施例中,服务系统2”的服务器22’并未内建或外接有混合式动态码编译装置,而是终端装置24a’?24e’内建或外接有混合式动态码编译装置。网页开发者20使用计算机装置21将撰写的文件标示语言与动态码通过服务器22’与因特网23送至终端装置24a’?24e’。终端装置24a’?24e’所内建或外接的混合式动态码编译装置将动态码转换为静态码与改写后的动态码。接着,终端装置24a’?24e’根据静态码与改写后的动态码以呈现网页开发者20所撰写的原始的动态码所对应的动态或互动的网页。
[0051]虽然上述多个实施例以混合式动态码编译装置内建或外接于计算机装置、服务器或终端装置为例进行说明。然而,要说明的是,本发明并不限制于此,在考虑各装置的运算能力不同的情况下,混合式动态码编译装置的各元件可以分别实现于计算机装置、服务器与终端装置的至少其中两者之中,以离散的方式处理所述动态码。甚至,混合式动态码编译装置可以被内建或外接于计算机装置、服务器与终端装置中,而且每一个混合式动态码编译装置彼此进行沟通,并且处理部分的动态码,并产生部分的静态码与部分的改写后的动态码。
[0052]请接着参照图3,图3是本发明实施例的混合式动态码编译方法的流程图。图3的混合式动态码编译方法可以执行于具有计算能力的电子装置,或者以上述混合式动态码编译装置来实现。总而言之,本发明并不限制混合式动态码编译方法的执行对象。
[0053]首先,在步骤S31中,接收文件标示语言,并且分析文件标示语言,以产生辅助信息。接着,在步骤S32中,接收动态码,并且以选择性地参考辅助信息来解析动态码,以将动态码分为多个区块,其中动态码可能被内嵌于文件标示语言中,且通过分析文件标示语言来提取所述动态码,或者动态码本身为独立于文件标示语言之外的档案。另外,动态码中多个结构化码、物件(或类别)信息与变数信息形成上述多个区块。
[0054]接着,在步骤S33中,基于建立的符号表检查区块中的变数类型,以判断所述区块是否无法编译。举例来说,若区块中有全域变数或内建变数中的评估变数,则判断所述区块为不能编译的区块,并接着执行步骤S36。相反地,若区块仅有区域变数,则判断所述区块为可能能编译的区块,并接着执行步骤S34。
[0055]然后,在步骤S34中,对可能能编译的区块进行型别推论,以判断所述可能能编译的区块是否为能编译的区块。倘若可能能编译的区块的型别无法被确定,则判定所述可能能编译的区块为不能编译的区块,并执行步骤S36。倘若可能能编译的区块的型别可被确定,则判定所述可能能编译的区块为能编译的区块,并执行步骤S35。
[0056]接着,在步骤S35中,根据多个能编译的区块产生静态码,也即将多个能编译的区块转换为静态码。除此之外,在步骤S36中,对多个不能编译的区块进行改写,以产生改写后的动态码,其中改写的动态码包括原始的动态码与静态码之间进行沟通的功能传呼。如此,终端装置可以接收静态码与改写后的动态码,并根据可以静态码与改写后的动态码完整地执行原始的动态码的内容,以呈现原始的动态码对应的动态或互动的网页。
[0057]然后,请参照图4,图4是本发明实施例的混合式动态码编译方法中垃圾回收处理的流程图。如同前面所述,本发明实施例的混合式动态码编译方法也可以提供网页开发者自行控制垃圾回收处理的功能。图4的步骤S41?S43执行于解析动态码的步骤,且图4的步骤S41?S43的存在与否并非用以限制本发明,也即提供网页开发者自行控制垃圾回收处理的功能与否并非用以限制本发明。当本发明实施例的混合式动态码编译方法开启提供网页开发者自行控制垃圾回收处理的功能后,所述混合式动态码编译方法会取得对应动态码所使用的系统提供的应用程序接口的标注,以拦截垃圾回收处理的功能传呼。
[0058]在步骤S41中,判断所述物件对应的动态码是否有网页开发者标记进行内存释放的标注。若判断所述物件对应的动态码有网页开发者标记进行内存释放的标注,则执行步骤S42。若判断所述物件对应的动态码未有网页开发者标记进行内存释放的标注,则执行步骤S43。在步骤S42中,判断所述物件须进行垃圾回收处理,并且对应地产生所述物件须进行垃圾回收处理的标注于对应的区块中。在步骤43中,判断所述物件无须进行垃圾回收处理,并且对应地产生所述物件无须进行垃圾回收处理的标注于对应的区块中。如此,终端装置可以根据上述标注判断所述物件是否需要进行垃圾回收处理,以符合网页开发者所期待的内存控制方式,从而增加终端装置的执行效率,并且避免内存泄漏发生。
[0059]在此请注意,于图4的实施例中,混合式动态码编译方法拦截所有垃圾回收处理的功能传呼。然而,本发明也可以选择仅将属于持久性(persistent)的物件的垃圾回收处理的功能传呼进行拦截。换言之,原来属于区域性(local)的物件仍还是交给系统的垃圾回收处理的功能传呼进行处理,仅有持久性(persi stent)的物件的垃圾回收处理的功能传呼被拦截,且持久性(persistent)的物件须通过网页开发者是否有标注进行内存释放来确定是否进行垃圾回收处理。
[0060]以V8引擎为例进行说明,在V8引擎中,物件参考(object reference)由Handle函数模块进行管理。Handle函数模块包括了物件参考的指针,以通过指针来指示物件的所在位置。Handle函数模块会将物件分为持久性与区域性的物件。在本发明实施例中,V8引擎可以被进行修改,以使混合式动态码编译方法仅对持久性的物件进行内存释放的控制。换言之,区域性的物件的存活范围(live range)若超过定义的Handle Scope的范围,贝Ij区域性的物件会自行地被系统进行垃圾处理。然而,原来仅能通过系统来控制内存释放持久性的物件,则可以让网页开发者通过标注来进行垃圾处理。另外,要说明的是,上述V8引擎可被修正成,持久性的物件仅根据网页开发者所下的标注来进行垃圾处理,或者上述V8引擎可被修正成,持久性的物件可以同时依据系统的控制与网页开发者所下的标注来进行垃圾处理。
[0061]综上所述,本发明实施例所提供的混合式动态码编译装置、方法及其服务系统有效地提升终端装置处理动态码的效率,并且有效地通过网页开发者的标注来对物件进行垃圾回收处理,以避免终端装置有内存泄漏的情况。另外,上述混合式动态码编译装置可以使用硬件或软件的方式来实现,且其实现复杂度不高,故不会有庞大的成本。
[0062]优选地,于本
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1