共查询到17条相似文献,搜索用时 93 毫秒
1.
2.
消除GCC抽象语法树文本中冗余信息的算法研究 总被引:1,自引:0,他引:1
由GCC编译器对C语言源程序进行语法分析产生的抽象语法树文本存在大量的冗余信息,如果直接对其进行解析,则会产生解析效率低、产生的抽象语法树会占用大量的存储空间的问题.针对此问题,在深入研究(GDC抽象语法树文本结构和解析过程的基础上,提出了一种高效消除冗余的算法,通过实验证明了算法的正确性和适用性,并提出了GCC抽象语法树解析的数学定义. 相似文献
3.
4.
5.
本文给出了以抽象语法树为基础的软件静态分析工具的体系结构,介绍了该工具中各个模块的设计与实现方法,着重于规则库的设计,以及利用定义好的规则实现自动化的代码检测的过程。 相似文献
6.
近来,基于框架的软件开发扮演着一个重要的角色。软件框架提供了一种标准的模式在相对较短的时间内构建应用程序。本文将探讨一个基于.NET MEF技术的框架的设计和实现。为追求一个更好的框架设计,不同的设计模式也被广泛应用在框架中。 相似文献
7.
近年来,随着不同编程语言代码自动转换工具的出现,跨语言的代码抄袭检测问题受到了越来越多的关注.现有跨语言代码抄袭检测主要包括传统的基于中间特征的检测方法和近年来出现的基于机器学习的检测方法,后者在检测模型训练完成之后具有更好的检测速度,是当前跨语言代码抄袭检测的研究热点.然而,现有的基于机器学习的跨语言抄袭检测方法大多将代码作为文本来处理,未考虑代码的结构特征.结合代码基于抽象语法树的结构特征,本文提出了一个基于伪孪生神经网络框架的跨语言抄袭检测工具CLPDetector.该工具将训练数据中的源代码对转换成对应的抽象语法树,基于抽象语法树生成代码的向量表示,然后将结合BiLSTM、CNN和Attention的深度神经网络嵌入到伪孪生网络架构中训练抄袭检测模型,从而实现了跨语言代码抄袭的检测.为了提高检测精度,首先,在训练检测模型前,利用基于抽象语法树的skip-gram算法对词向量进行了预训练,并基于程序依赖图删除了训练数据集代码中的冗余代码.其次,在代码抄袭检测阶段,提出了一个基于属性计数的过滤器,用以排除不可能抄袭的代码对,提高检测效率.实验中基于一个开源的数据集,以Java代码和... 相似文献
8.
控制流图描述了函数执行时可能采取的执行路径。绝大多数静态分析工具都在抽象语法树之上生成控制流图并据此对程序的运行行为进行分析。在模型检测过程中,提取正确的控制流图是构建系统模型的关键。在分析C程序的抽象语法树和控制结构的基础上,设计并实现了程序控制流图提取的算法,并分析了算法的正确性。基于提取的控制流程,可对C程序的某些性质进行模型检验。 相似文献
9.
10.
封闭手机系统之上的一种手机中间件平台,采用Doug Lea 内存管理算法对非常有限的系统内存进行管理,小内存块的有效利用率比较低,针对该手机中间件的内存特点,开发了基于封闭手机系统手机中间件上的一款JavaScript 解释器系统,该系统分为解释前端和解释后端两部分,采取语法分析驱动词法分析和语义动作策略,并基于语法制导思想构造了JavaScript 生成抽象语法树的属性文法。相对于其他解释器系统而言,有效地降低了小内存块的大规模使用,提高了内存利用率,效果良好。 相似文献
11.
随着开源软件项目的蓬勃发展,软件抄袭俨然已成为软件生态环境健康发展的威胁之一,其得到越来越多的研究人员、教育人员、开源社区及软件企业的关注,软件抄袭检测对于软件知识产权保护具有重要意义。本文对软件抄袭检测的研究现状和进展进行综述。首先介绍软件抄袭检测的意义和威胁模型;然后,根据应用场景和技术手段,从源代码抄袭检测、无源码场景下基于软件水印和基于软件胎记的抄袭检测三个方面,对现有软件抄袭检测技术进行阐述和比较;最后,通过分析软件抄袭检测研究存在的问题及其面临的挑战和实际需求,对未来研究方向进行了展望。 相似文献
12.
软件动态胎记技术是实现混淆对抗的软件抄袭检测的有效手段之一.然而,多线程程序中线程交织的不确定性对其造成了不可忽视的影响;极端情况下,传统动态胎记技术甚至会判定同一个程序与其自身不存在抄袭关系.对此,提出从多线程程序在同一输入下的多条执行轨迹中进行相似部分的识别,并从中抽象出不易受线程交织影响的行为motifs来实现多线程程序的抄袭检测.该方法捕捉程序的动态执行轨迹,经过轨迹修剪、gram匹配以及扩展和抽象,从中提取motifs胎记建模多线程程序的行为;最终,通过衡量motifs胎记的相似性实现程序间潜在抄袭的判定.在一个包含234个不同版本多线程程序的公共数据集上开展的实验表明,motifs胎记是一种可靠的线程感知胎记方法,不仅可有效对抗当下主流的代码混淆技术,相比现有的2种多线程程序抄袭检测方法TreSB(thread-related system call birthmark)和TOB(thread-oblivious birthmark),也体现出更优秀的检测能力. 相似文献
13.
14.
在软件开发的过程中,开发人员通过复制粘贴式的开发方式或者模块化的开发方式来完成需求是十分常见的,这两种开发方式可以提高开发效率,但同时会导致软件系统中出现大量的相同代码或者相似代码,大量的相似代码会给软件维护等方面带来很大的困难,这也是最常见的重构对象。源代码相似性度量是指利用一定的检测方法分析程序源代码间的相似程度。该技术被应用于代码抄袭检测、代码克隆检测、软件知识产权保护、代码复用等多个领域。为了提高代码相似性度量的准确性,提出了一种基于多特征值的源代码相似性检测技术。构建了源代码注释、型构、代码文本语句与结构中特征提取的方法,并给出了源代码相似度检测的度量模型。通过与权威的代码相似检测系统Moss进行对比实验,结果表明该方法可以更准确地检测出相似代码。 相似文献
15.
通过分析学生作业中存在的抄袭现象,介绍了一种用于抄袭检查的程序的设计和实现.程序能够计算一批程序代码之间的相似程度.为了保证检查精度和运行速度,程序中利用了语法解析、计算数字指纹、求解最长公共子序列等技术. 相似文献
16.
17.
为了提高软件的可靠性,软件缺陷预测已经成为软件工程领域中一个重要的研究方向.传统的软件缺陷预测方法主要是设计静态代码度量,并用机器学习分类器来预测代码的缺陷概率.但是,静态代码度量未能充分考虑到潜藏在代码中的语义特征.根据这种状况,本文提出了一种基于深度卷积神经网络的软件缺陷预测模型.首先,从源代码的抽象语法树中选择合适的结点提取表征向量,并构建字典将其映射为整数向量以方便输入到卷积神经网络.然后,基于GoogLeNet设计卷积神经网络,利用卷积神经网络的深度挖掘数据的能力,充分挖掘出特征中的语法语义特征.另外,模型使用了随机过采样的方法来处理数据分类不均衡问题,并在网络中使用丢弃法来防止模型过拟合.最后,用Promise上的历史工程数据来测试模型,并以AUC和F1-measure为指标与其他3种方法进行了比较,实验结果显示本文提出的模型在软件缺陷预测性能上得到了一定的提升. 相似文献