【技术实现步骤摘要】
本专利技术关于一种变量推论系统及方法。更具体而言,本专利技术关于一种针对软件程序的变量推论系统及方法。
技术介绍
为了提升一软件程序的执行效率,该软件程序的原始码(sourcecode)可能会在不同的程序语言之间进行转编译(transcomplier)。举例而言,JavaScript引擎执行JavaScript语言程序代码的效率约为执行原生语言程序代码(例如C或C++语言建构的程序代码)的一半,而若先将JavaScript语言程序代码转编译为原生语言程序代码,再由JavaScript引擎来执行,则可提升整体的执行效率。JavaScript语言程序代码属于动态语言程序代码,而动态语言程序代码中可能包含动态类型(dynamictyping)以及动态名称链接(dynamicnamebinding)。动态类型乃指动态语言程序代码中的变量必须在其被执行时才能决定其类型,而动态名称链接乃指动态语言程序代码中同一函数名称会因为执行其不同的状况而连结到不同的函数。然而,由于上述特性(即动态类型与动态名称链接),在动态语言程序代码被转编译为原生语言(nativelanguage)程序代码的过程中,动态语言程序代码中的变量类型将难以被确定,进而影响转编译的整体效率(例如增加编译的时间或降低编译的正确率)。有鉴于此,如何在动态语言程序代码被转编译为原生语言程序代码的过程中,提供一种有效的变量推论方法,确实为本专利技术所属技术领 ...
【技术保护点】
一种针对软件程序的变量推论系统,包含:输入装置,用以输入软件程序;处理装置,与该输入装置连接,并用以分割该软件程序为多个基本区块,其中该等基本区块包含多个第一基本区块及第二基本区块,且该处理装置针对各该第一基本区块计算对应至未知变量的第一变量类型输出,根据该等第一变量类型输出针对该第二基本区块计算对应至该未知变量的第二变量类型输入,于该第二基本区块中包含对应至该未知变量的原始指令时,针对该第二基本区块计算对应至该未知变量的第二变量类型生成,针对该第二基本区块计算对应至该未知变量的第二变量类型删除,以及根据该第二变量类型输入、该第二变量类型生成、该第二变量类型删除,针对该第二基本区块计算对应至该未知变量的第二变量类型输出;以及储存装置,与该处理装置连接,并用以储存该等第一变量类型输出及该第二变量类型输出。
【技术特征摘要】
1.一种针对软件程序的变量推论系统,包含:
输入装置,用以输入软件程序;
处理装置,与该输入装置连接,并用以分割该软件程序为多个基本区块,
其中该等基本区块包含多个第一基本区块及第二基本区块,且该处理装置针对
各该第一基本区块计算对应至未知变量的第一变量类型输出,根据该等第一变
量类型输出针对该第二基本区块计算对应至该未知变量的第二变量类型输入,
于该第二基本区块中包含对应至该未知变量的原始指令时,针对该第二基本区
块计算对应至该未知变量的第二变量类型生成,针对该第二基本区块计算对应
至该未知变量的第二变量类型删除,以及根据该第二变量类型输入、该第二变
量类型生成、该第二变量类型删除,针对该第二基本区块计算对应至该未知变
量的第二变量类型输出;以及
储存装置,与该处理装置连接,并用以储存该等第一变量类型输出及该第
二变量类型输出。
2.如权利要求1所述的变量推论系统,其特征在于,该处理装置根据以下方
程计算对应至该未知变量的该第二变量类型输入:
TYPEin(ni)=T_MERGE(TYPEout(nj),TYPEoutl(nk))
其中ni表示该第二基本区块,Pred(ni)表示该等第一基本区块,nj与nk表
示该等第一基本区块中的任二个第一基本区块,T_MERGE(*)表示类型融合运
算。
3.如权利要求1所述的变量推论系统,其特征在于,该原始指令包含二来源
操作数、目的操作数及运算,且该处理装置根据该等来源操作数、该目的操作
数及该运算,计算对应至该未知变量的该第二变量类型生成。
4.如权利要求1所述的变量推论系统,其特征在于,该处理装置根据以下方
程计算对应至该未知变量的该第二变量类型输出:
TYPEout(ni)=TYPEgen(ni)∪(TYPEin(ni)-TYPEkill(ni))
其中ni表示该第二基本区块,∪表示联集运算,且TYPEout(ni)、TYPEgen(ni)、
TYPEin(ni)与TYPEkill(ni)分别表示该第二变量类型输出、该第二变量类型生成、
该第二变量类型输入与该第二变量类型删除。
5.如权利要求4所述的变量推论系统,其特征在于,若该未知变量于该第二
基本区块中被重新定义,则该处理装置根据该第二变量类型删除而删除先前输
入的第二变量类型输入。
6.如权利要求1所述的变量推论系统,其特征在于:该处理装置更用以针对
各该第一基本区块计算对应至未知变量的第一变量数值输出,根据该等第一变
量数值输出针对该第二基本区块计算对应至该未知变量的第二变量数值输入,
于该第二基本区块中包含对应至该未知变量的原始指令时,针对该第二基本区
块计算对应至该未知变量的第二变量数值生成,针对该第二基本区块计算对应
至该未知变量的第二变量数值删除,以及根据该第二变量数值输入、该第二变
量数值生成、该第二变量数值删除,针对该第二基本区块计算对应至该未知变
量的第二变量数值输出;以及该储存装置更用以储存该等第一变量数值输出及
该第二变量数值输出。
7.如权利要求6所述的变量推论系统,其特征在于,该处理装置根据以下方
程计算对应至该未知变量的该第二变量数值输入:
VALUEin(ni)=V_MERGE(VALUEout(nj),VALUEoutl(nk))
其中ni表示该第二基本区块,Pred(ni)表示该等第一基本区块,nj与nk表
示该等第一基本区块中的任二个第一基本区块,V_MERGE(*)表示数值融合运
算。
8.如权利要求6所述的变量推论系统,其特征在于,该原始指令包含二来源
操作数、目的操作数及运算,且该处理装置根据该等来源操作数、该目的操作
\t数及该运算,计算对应至该未知变量的该第二变量数值生成。
9.如权利要求6所述的变量推论系统,其特征在于,该处理装置根据以下方
程计算对应至该未知变量的该第二变量数值输出:
VALUEout(ni)=VALUEgen(ni)∪(VALUEin(ni)-VALUEEkill(ni))
其中ni表示该第二基本区块,∪表示联集运算,且VALUEout(ni)、
VALUEgen(ni)、VALUEin(ni)与VALUEkill(ni)分别表示该第二变量数值输出、
该第二变量数值生成、该第二变量数值输入与该第二变量数值删除。
10.如权利要求9所述的变量推论系统,其特征在于,若该未知变量于该第二
基本区块中被重新定义,则该处理装置根据该第二变量数值删除而删除先前输
入的第二变量数值输入。
11.一种针对软件程序的变量推论方法,包含以下步骤:
由输入装置输入软件程序;
由处理装...
【专利技术属性】
技术研发人员:游逸平,吴晞浩,郑育镕,陈静芳,
申请(专利权)人:财团法人资讯工业策进会,
类型:发明
国别省市:中国台湾;71
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。