JavaScript静态切片工具的设计与实现

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:li1xiang125
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序切片是一种传统的程序分析方法:通过去除程序中的无关代码,获取可能影响到程序中某行代码的代码子集。程序切片在程序理解、软件测试以及程序调试等诸多软件工程领域有着广泛应用。随着互联网技术的发展,JavaScript语言得到广泛应用,但针对该语言的程序切片方法和工具却非常有限。JavaScript语言是动态类型解释执行的语言,函数的传递使函数的调用关系难以分析其语言的闭包特性让函数使用外部变量的场景更为常见。同时,因为JavaScript语言一般应用于浏览器中,一些浏览器相关的特性也增加了分析的难度。传统的基于程序依赖图的切片算法,通过分析语句间的数据依赖和控制依赖关系构造系统依赖图,并利用系统依赖图计算程序切片。由于JavaScript的语言特性,传统的程序切片算法不能直接应用于JavaScript语言。本课题将程序切片技术引入JavaScript语言。结合JavaScript语言的特点,分析JavaScript语言中的控制和数据依赖关系,给出针对JavaScript语言的切片算法。解决JavaScript程序中函数调用、参数闭包以及浏览器相关接口给切片带来的问题。并基于该切片算法,利用WALA分析框架,给出了工具实现。使用实际项目作为实验对象的实验结果表明,本文的切片算法可以得到较为理想的切片结果,切片的平均大小约为原程序的70%,较手工切片仅有约19%的冗余。
其他文献
在许多实际的动态系统中,硬件上的物理输入饱和决定了控制信号的幅度总是受到限制。饱和对于控制系统的执行器来说是一种潜在性的问题,它经常严重地限制系统的性能,导致控制
基于物理的流体模拟是计算机动画领域的重要组成部分。但由于流体自身运动的复杂性,进行高质量的流体模拟需要消耗大量的资源与时间。随着人们对流体动画质量的追求越来越高,动画师需要在越来越高精度的网格中进行流体模拟。但动画师在高精度网格中模拟所得到的流体形态往往与期待的形态不符,需要进行反复的参数调整才能得到理想的流体形态。此外,由于数值误差的存在,在低精度的网格中模拟得到的流体与高精度网格中模拟得到的流
专车是依赖于互联网约车平台的出行方式,它利用了技术变革和资本催化的时机悄然崛起,加速了出行市场的多样化、个性化发展,并深刻影响了人们的出行观念。然而由于用户群体的相似性,专车市场的发展无疑冲击了传统出租车市场的垄断地位,这也是引发专车市场监管问题的直接原因。专车市场监管是否得当,不仅关系到专车市场的健康发展,还关系到公共利益的实现。结合专车市场特点及多方利益关系分析专车市场监管的现状、问题和对策,
随着化石能源的枯竭以及环境问题的日益严峻,世界各国都大力推动电动汽车的发展。动态无线充电技术作为车辆到电网(Vehicle to Grid,V2G)网络中电动汽车与智能电网的一种重要
乳腺癌作为世界上发病率最高的癌症之一,严重威胁着人们的身体健康,提前预防非常重要。虽然目前乳腺癌可以通过X放射,热成像,超声成像等方法进行检测,但是这些检测方法可能会
多智能体系统的分布式优化是指在一个通讯网络中,一些具有一定的计算、通讯和感知能力的智能个体,依据分布式算法自行对各自状态更新,共同的极小化总体的目标函数.系统无需中
加拿大档案学家特里·库克是国际档案学界最具影响力的理论家之一,他的宏观鉴定理论、新来源观和档案记忆思想在我国档案学界得到了广泛传播,并产生了重要的学术影响。目前,
迁移学习已经成为机器学习的研究热点。在进行迁移学习之前,选择合适的源领域用于目标领域的迁移学习,可以避免多次迁移学习尝试,提升迁移学习效率,缓解负迁移现象。但现有迁
混沌因其天然具有类随机性、初值敏感性等复杂动力学特性被广泛应用于信息安全及其保密通信领域中。整数阶低维混沌系统存在着安全隐患,而分数阶时滞系统难以被常规攻击手段攻破且拥有更大的密钥空间,在保密通信领域中有着更广阔的应用空间和实用价值,因此构造分数阶时滞混沌系统是提高保密通信系统安全性的有效途径。Hopfield神经网络在一定条件下能够直接生成具有良好扩散效应的混沌矩阵,本文以一类分数阶时滞Hopf
随着科技的发展和互联网的进步,各种数据呈现剧增的趋势,图像作为一种直观表达数据的形式,早已渗透到社会的各行各业中。面对当前海量的图像数据,如何利用有效的分类技术对其