首页 | 本学科首页   官方微博 | 高级检索  
检索     
共有20条相似文献,以下是第1-20项 搜索用时 656 毫秒

1.  基于抽象语法树和多态机制的复杂条件语句自动重构研究  
   刘伟  胡志刚  刘宏韬《电子科技大学学报(自然科学版)》,2014年第5期
   针对源代码中复杂条件语句将增加程序的复杂性,影响代码的易理解性、可测试性、可维护性和可扩展性等问题,提出了一种基于抽象语法树和多态机制的复杂条件语句自动重构方法,用于识别源代码中复杂条件语句的重构时机并实施自动代码重构。首先将源代码转换为抽象语法树,再探测代码中的条件语句,寻找满足预定条件的条件语句,最后利用多态机制对条件语句进行自动重构,将其封装到一系列子类中。对4个开源项目进行重构时机识别和自动重构实验。实验结果表明,重构时机识别算法的精确率可达100%,并能准确地实现代码的自动重构;经回归测试,重构后的代码未引入任何错误;此外,该算法具有较好的性能,执行时间与系统规模呈线性关系,能够应用于各类不同规模的系统。    

2.  C语言词法语法分析工具CParser的设计与实现  
   杨劭君  苏小红  王甜甜  马培军《电脑学习》,2014年第4卷第5期
   程序分析技术包括控制流分析、数据流分析、别名分析、程序切片和程序插桩等技术,在程序理解,代码重构、代码优化和软件自动化调试等方面有着重要的应用,而词法分析和语法分析技术是程序分析技术的基础。本文设计与实现了一个轻量级的C语言词法语法分析工具CParser,通过词法分析、预处理和语法分析三个步骤,实现了根据源代码建立相应的抽象语法树的功能。工具使用简单方便,而且能够完整支持C99标准,可用于克隆代码检测、软件错误定位等后续研究工作。    

3.  基于JavaCC的抽象语法树的构建与实现  
   黄松  黄玉  惠战伟《计算机工程与设计》,2016年第4期
   抽象语法树(abstract syntax tree,AST)作为程序一种重要的中间表示形式,在代码分析领域中有着广泛的应用。如何针对Java程序生成其抽象语法树是在进行代码静态分析前必不可少的工作。分析抽象语法树的构建算法,通过JavaCC解析工具完成对Java文件抽象语法树的构建,该方法可实现代码树状形式的可视化呈现。    

4.  基于相似性度量的面向对象程序方法级克隆侦测  
   于冬琦  吴毅坚  彭鑫  赵文耘《电子学报》,2010年第38卷第Z1期
   代码克隆侦测对于代码重构以及可复用资产抽取都有着重要的作用.现有的克隆侦测方法及工具以相似代码片段为单位,给进一步的克隆分析以及代码重构带来困难.针对这一问题,本文提出了一种基于相似性度量的面向对象程序方法级克隆侦测方法,即以方法为单位进行克隆代码侦测.该方法综合利用代码中的注释、签名以及语法相似性来度量方法代码之间的克隆程度.在此基础上合并子类中的相似方法并提取到父类中,从而实现进一步的代码重构.本文通过对JDK包中代码的实验分析验证了本文所提出方法的有效性.初步的实验结果表明,本文方法能够准确、有效地辅助开发者实现方法级的克隆代码侦测.    

5.  一种语义保持的C克隆代码无定型过程提取方法  
   边奕心  王甜甜  苏小红  马培军《计算机研究与发展》,2013年第50卷第7期
   克隆代码又被称为重复代码,是一种代码坏味,针对传统的保持语法结构不变的过程提取方法提取克隆代码时存在的对某些克隆代码无法直接提取的问题,提出一种新的语义保持的克隆代码无定型过程提取方法,该方法结合程序依赖图和抽象语法树对程序进行语义分析,取消了传统的保持语法结构不变的过程提取算法对语句结构一致性的约束,保留了语义一致性约束,从而解决了传统方法不易处理的连续但不能直接提取的克隆代码提取问题,降低了对未标记语句提升的需求,并且不需要对跳转语句进行特殊处理.实验结果表明该方法可以提取传统的保持语法结构不变的过程提取方法不能提取的克隆代码,提高了克隆代码过程提取的准确性和适用性.    

6.  基于动态分析的JavaScript代码推荐  
   吴通  陈雨亭《计算机工程》,2014年第10期
   针对现有基于静态分析的JavaScript代码推荐技术准确度低且响应速度较慢的问题,提出一种基于动态分析的JavaScript代码提示方法,并设计基于Eclipse插件的代码推荐工具。采用事先建模的方法保存模拟运行环境,并且对上下文对象建立特征索引。同时在用户代码抽象语法树的基础上进行代码分块,按程序分块顺序对用户代码进行模拟执行,利用对象之间的相似度在用户运行时修正运行变量,并对模拟执行时产生的异常进行处理,实现针对用户代码的动态分析JavaScript代码提示。实验结果表明,与现有使用静态分析方法的JavaScript代码推荐技术相比,该方法具有更高的可推荐性和更快的响应速度。    

7.  基于语法树和JavaCC的程序题自动评分系统  
   屠方博  杨志强《微机发展》,2012年第1期
   为了提高程序题自动评分的准确性,及解决传统评分方法无法从语法结构和语义角度衡量错误的学生程序与正确答案之间的相似度,提出了一种基于抽象语法树匹配的程序题自动评分方法。文中以JavaCC技术为核心,首先通过词法分析、语法分析和语义分析生成错误列表和抽象语法树的中间表示,然后通过语法树切片匹配得分,最后和错误列表结合给出评分结果。文中详细论述了各个模块的设计方法,着重讨论了抽象语法树生成并匹配的细节,设计并实现了一个传统方法与语义分析结合的C++程序题自动评分系统。通过对实际考试的结果进行实验,进而验证了该系统的实用性与有效性。    

8.  基于抽象语法树的Javascript混淆器  
   王昱杰《硅谷》,2015年第2期
   混淆技术对于保护软件安全具有重要作用。本文分析了Google Closure Compiler编译器的功能,并描述了其对于抽象语法树的节点约束条件。基于抽象语法树,提出了针对Javascript代码进行子树层次加深和同义转换的混淆方法 ,并从三个方面进行了混淆结果的评估。    

9.  相似代码检测工具及其案例分析  
   李卓  邓明荣《计算机工程与科学》,2010年第32卷第4期
   软件系统中的相似代码给软件维护带来很大困难,也是最易见的重构对象。如何有效地检测相似代码是软件工程领域的一个重要研究课题。本文介绍了常见的基于文本匹配的相似代码检测算法,尤其是检测源文件之间相似代码的动态文本匹配算法和源文件内部相似代码的后缀树算法,并将这两种算法结合起来,实现一个相似代码检测工具。该工具提供了时空代价平衡的相似代码检测能力,提供了精确有效的相似代码检测手段,帮助开发人员锁定相似代码,提高了重构活动的效率。本文介绍了该工具的架构和内部处理流程,并应用该工具搜索了若干实际应用系统的重复代码,检验了工具的可用性。还简单讨论了该工具和其他一些相似代码检测工具的优劣。    

10.  基于字符串的代码克隆检测方法的分析  
   安帝玟  唐艳宾《数字社区&智能家居》,2009年第31期
   克隆代码是指在软件源程序中存在的相同或相似的代码片段。克隆代码在很多软件工程中,例如程序理解,代码质量分析,剽窃检测,漏洞查找和病毒检测,都需要通过找出语义或语法上相似的代码片段来实现。目前常用的检测方法有四种:基于文本(text-based)的检测,基于字符序列(token-based)的检测,基于语法树(tree-based)的检测和基于关系图(PDG-based)的检测。基于字符序列的克隆检测首先对源程序进行预处理转换,再经过匹配算法得到克隆检测结果。克隆代码的检测是软件分析的一个重要的部分。    

11.  基于字符串的代码克隆检测方法的分析  
   安帝玟  唐艳宾《数字社区&智能家居》,2009年第11期
   克隆代码是指在软件源程序中存在的相同或相似的代码片段。克隆代码在很多软件工程中,例如程序理解,代码质量分析,剽窃检测,漏洞查找和病毒检测,都需要通过找出语义或语法上相似的代码片段来实现,目前常用的检测方法有四种:基于文本(text—based)检测,基于字符序列(token-based)的检测,基于语法树(tree-based)的检测和基于关系图(PDG—based)的检测。基于字符序列的克隆检测首先对源程序进行预处理转换,再经过匹配算法得到克隆检测结果:克隆代码的检测是软件分析的一个重要的部分。    

12.  软件静态测试中C/C++抽象语法树的生成  
   于屏岗  张威  肖庆《测试技术学报》,2004年第18卷第Z5期
   本文中C/C++抽象语法树是利用GNU提供的标准编译器生成工具Lex和Yacc,由parser程序通过调用lexical(词法分析程序)进行语法分析生成的. 为了进行基于系统崩溃的故障模型的软件静态测试,需要从抽象语法树上获取相关的数据依赖关系和定义使用链.这就要求在原有抽象语法树的基础上进行语义分析,产生最终的抽象语法树.论文描述了C/C++抽象语法树及其语法和语义分析过程的具体方法.    

13.  基于K-最近邻的C克隆代码重构方法  
   冯江辉  王甜甜  苏小红  马培军《电脑学习》,2011年第1卷第3期
   在软件开发过程中,克隆代码已经成为引起软件缺陷的一个重要因素.针对现有的方法不能很好地处理内聚度低、功能交叉的克隆代码的问题,提出了一种基于K-最近邻的克隆代码重构方法.首先,对克隆代码进行静态分析,搜集控制依赖信息和数据流信息,再经过K-最近邻聚类方法,形成便于提取、功能独立的代码片段,然后对代码片段进行过程提取,使之成为一个独立的过程,并用过程调用替代原来的克隆代码.实验结果表明,该方法能够对克隆代码进行有效组织,并对功能独立的部分进行提取.    

14.  一种面向方面的软件容错能力增强工具  
   黄焱艺  于阳  彭鑫  赵文耘《计算机应用与软件》,2012年第2期
   容错是保障软件可靠性的重要手段。该目标是利用对软件系统静态分析的信息,生成具有容错能力的方面文件来增强软件系统的容错能力。首先利用抽象语法树的分析工具,来获得一些有用信息,比如异常类型和抛出异常的方法。然后通过模板生成工具生成相应的恢复代码,利用面向方面机制,将代码动态编织入系统中。最后做一个案例证明方法在实现容错增强方面的可行性。    

15.  基于AST的程序静态分析工具的研究与实现  
   陈平  王成耀《微计算机信息》,2007年第23卷第24期
   本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。    

16.  一种基于故障模型的代码静态测试方法研究  
   夏玉辉  李鸣  万琳  王洪艳《计算机与现代化》,2011年第2期
   软件测试是排除软件故障,提高软件质量和可靠性的重要手段。基于故障模型的软件测试是软件编码阶段的主流测试方法之一。基于故障模型的代码静态测试技术具有测试效率高、对逻辑复杂故障测试效果好等特点。鉴于此,本文采取一种特殊的静态分析技术来实现对代码的测试。首先讨论传统软件测试方法的缺点和局限性,给出基于故障模型的静态测试方法的优越性;然后在分析过程中,综合应用抽象语法树和控制流图,提出一种基于故障模型的软件测试方法。依据该算法开发自动化测试工具,给出实验结果和对比分析,并指出下一步的研究方向。    

17.  软件源代码中的代码克隆现象及其检测方法  
   叶青青《计算机应用与软件》,2008年第25卷第9期
   如果软件源程序中的一个代码段和同一程序中的另一个代码段在结构或语义上类似,这些代码段就成了代码克隆.概述代码克隆存在的各种形式,分析代码克隆产生的原因,并在概括了代码克隆检测的一般过程以后进一步阐述两类代码克隆检测方法:基于语义抽象树的检测方法和基于Token序列的检测方法.    

18.  基于过程蓝图的静态代码控制流生成算法  
   王觉  刘建宾  郑丽伟《福建电脑》,2014年第10期
   对非结构化的程序代码进行理解分析对代码理解能力不强的测试人员存在一定难度。为了减轻静态代码分析的难度,本文首先采用程序切片算法将程序进行预处理,利用过程蓝图对代码进行可视化操作形成程序的中间表示形式抽象语法树。然后对其构造和特点进行研究,提出抽象语法树的遍历算法。通过该算法得到程序的控制流图。最后,利用控制流图和控制树,对静态代码进行高效的控制流分析,监测这些代码是否满足安全性、可靠性等方面的指标,为检测和处理软件缺陷降低成本。    

19.  一种改进的基于抽象语法树的软件源代码比对算法  
   刘楠  韩丽芳  夏坤峰  曲通《信息网络安全》,2014年第1期
   在软件同源性检测方法中,基于抽象语法树的比对方法能够有效地检测出基于代码全文拷贝、修改变量名、调整代码顺序等的抄袭手段,被广泛用于抄袭检测工具中。但基于抽象语法树的比对方法对于修改变量类型和添加无意义变量的抄袭手段束手无策。针对这种情况,提出了一种基于抽象语法树的改进思想,该思想通过剪去语法树中影响判断的叶子节点的手段来还原检测原文抄袭,能够达到有效检测修改变量类型和添加无意义变量等抄袭的目的。    

20.  基于AST的代码抄袭检测方法研究  
   刘呈龙  贾胜颖  张丽萍  刘东升《计算机工程与设计》,2012年第33卷第4期
   为了检测程序设计类课程中出现的作业抄袭行为,提出了基于抽象语法树的抄袭检测方法.运用语法分析工具对代码进行语法分析生成抽象语法树(AST),通过计算生物学中序列匹配的算法进行程序相似度的计算.提取程序相似部分的AST特征,生成空间向量,聚类分析找出“抄袭团伙”.实验结果表明,该方法对抄袭行为具有较好的检测效果,并能比较准确地找到“抄袭团伙”.    

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号