期刊文献+
共找到106篇文章
< 1 2 6 >
每页显示 20 50 100
消除GCC抽象语法树文本中冗余信息的算法研究 被引量:8
1
作者 李鑫 王甜甜 +1 位作者 苏小红 马培军 《计算机科学》 CSCD 北大核心 2008年第10期170-172,共3页
由GCC编译器对C语言源程序进行语法分析产生的抽象语法树文本存在大量的冗余信息,如果直接对其进行解析,则会产生解析效率低、产生的抽象语法树会占用大量的存储空间的问题。针对此问题,在深入研究GCC抽象语法树文本结构和解析过程的基... 由GCC编译器对C语言源程序进行语法分析产生的抽象语法树文本存在大量的冗余信息,如果直接对其进行解析,则会产生解析效率低、产生的抽象语法树会占用大量的存储空间的问题。针对此问题,在深入研究GCC抽象语法树文本结构和解析过程的基础上,提出了一种高效消除冗余的算法,通过实验证明了算法的正确性和适用性,并提出了GCC抽象语法树解析的数学定义。 展开更多
关键词 抽象语法树(AST) 抽象语法树文本 抽象语法树的解析 规范化的抽象语法树文本 冗余
在线阅读 下载PDF
基于依赖增强的分层抽象语法树的代码克隆检测 被引量:2
2
作者 万泽轩 谢春丽 +1 位作者 吕泉润 梁瑶 《计算机应用》 CSCD 北大核心 2024年第4期1259-1268,共10页
在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深... 在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深入挖掘AST中的深层语义和结构信息。针对上述问题,提出一种基于依赖增强的分层抽象语法树(DEHAST)的代码克隆检测方法。首先,对AST进行分层处理,将AST划分得到不同的语义层次;其次,为AST的不同层次添加相应的依赖增强边构建DEHAST,将简单的AST变成具有更丰富程序语义的异构图;最后,使用图匹配网络(GMN)模型检测异构图的相似性,实现代码克隆检测。在BigCloneBench和Google Code Jam两个数据集上的实验结果显示,DEHAST能够检测100%的Type-1和Type-2代码克隆、99%的Type-3代码克隆和97%的Type-4代码克隆;与基于树的方法ASTNN(AST-based Neural Network)相比,F1分数均提高了4个百分点,验证了DEHAST可以较好地完成代码语义克隆检测。 展开更多
关键词 代码克隆检测 语义克隆 抽象语法树 深度学习 图匹配网络
在线阅读 下载PDF
使用抽象语法树和静态分析的克隆代码自动重构方法 被引量:14
3
作者 于冬琦 彭鑫 赵文耘 《小型微型计算机系统》 CSCD 北大核心 2009年第9期1752-1760,共9页
单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异... 单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异度指标建立起语法树之间流程控制语句的对应关系.在此基础上,该方法根据控制流程和基本语句块两个层次上的差异性分析,最终通过代码可变点提取实现克隆代码的自动合并.针对Java代码开发了克隆代码重构支持工具原型,并分别针对JDK1.5和一个业务系统进行了自动重构实验.初步的结果表明,该方法能够准确、有效地辅助开发者实现克隆代码的自动重构. 展开更多
关键词 可变点提取 代码克隆 抽象语法树 再工程 逆向工程
在线阅读 下载PDF
建立抽象语法树模型评测C++代码 被引量:6
4
作者 崔舒宁 吴宁 叶丹 《计算机应用》 CSCD 北大核心 2015年第A01期183-185,191,共4页
目前绝大多数的C++程序评测是通过对程序运行结果和标准测试用例的比对,给出非对即错的2值评判。而在虚拟实验室和慕课中,需要结合程序源码给出更全面客观的评价。针对此问题,通过建立C++源代码的抽象语法树,改进了结果相似度和程序代... 目前绝大多数的C++程序评测是通过对程序运行结果和标准测试用例的比对,给出非对即错的2值评判。而在虚拟实验室和慕课中,需要结合程序源码给出更全面客观的评价。针对此问题,通过建立C++源代码的抽象语法树,改进了结果相似度和程序代码相似度的计算方法,使其能够反映程序语义之间的相似度,并在此基础上建立了C++代码综合评价模型。通过实际检验,和人工批改相比较平均批改准确率达到了92.11%,并以百分制的方式给出评价结果。结合程序语义的评价,不仅对学生而言给出了更公正的评分,也为后续的虚拟实验室智能在线指导提供了基础。 展开更多
关键词 在线评测 抽象语法树 代码相似度 慕课 程序设计
在线阅读 下载PDF
基于JavaCC的抽象语法树的构建与实现 被引量:5
5
作者 黄松 黄玉 惠战伟 《计算机工程与设计》 北大核心 2016年第4期938-943,共6页
抽象语法树(abstract syntax tree,AST)作为程序一种重要的中间表示形式,在代码分析领域中有着广泛的应用。如何针对Java程序生成其抽象语法树是在进行代码静态分析前必不可少的工作。分析抽象语法树的构建算法,通过JavaCC解析工具完成... 抽象语法树(abstract syntax tree,AST)作为程序一种重要的中间表示形式,在代码分析领域中有着广泛的应用。如何针对Java程序生成其抽象语法树是在进行代码静态分析前必不可少的工作。分析抽象语法树的构建算法,通过JavaCC解析工具完成对Java文件抽象语法树的构建,该方法可实现代码树状形式的可视化呈现。 展开更多
关键词 抽象语法树 JAVA程序 JavaCC解析工具 解析器 算法
在线阅读 下载PDF
一种改进的基于抽象语法树的软件源代码比对算法 被引量:9
6
作者 刘楠 韩丽芳 +1 位作者 夏坤峰 曲通 《信息网络安全》 2014年第1期38-42,共5页
在软件同源性检测方法中,基于抽象语法树的比对方法能够有效地检测出基于代码全文拷贝、修改变量名、调整代码顺序等的抄袭手段,被广泛用于抄袭检测工具中。但基于抽象语法树的比对方法对于修改变量类型和添加无意义变量的抄袭手段束手... 在软件同源性检测方法中,基于抽象语法树的比对方法能够有效地检测出基于代码全文拷贝、修改变量名、调整代码顺序等的抄袭手段,被广泛用于抄袭检测工具中。但基于抽象语法树的比对方法对于修改变量类型和添加无意义变量的抄袭手段束手无策。针对这种情况,提出了一种基于抽象语法树的改进思想,该思想通过剪去语法树中影响判断的叶子节点的手段来还原检测原文抄袭,能够达到有效检测修改变量类型和添加无意义变量等抄袭的目的。 展开更多
关键词 抽象语法树 AST 改进算法
在线阅读 下载PDF
一种解析GCC抽象语法树的方法 被引量:8
7
作者 石峰 刘坚 《计算机应用》 CSCD 北大核心 2004年第3期115-116,共2页
介绍了GCC抽象语法树的结构及在编译过程中的作用。给出解析抽象语法树所使用的词法规则和语法规则,提出了解析GCC抽象语法树的方法。
关键词 抽象语法树 词法规则 语法规则
在线阅读 下载PDF
基于抽象语法树和多态机制的复杂条件语句自动重构研究 被引量:2
8
作者 刘伟 胡志刚 刘宏韬 《电子科技大学学报》 EI CAS CSCD 北大核心 2014年第5期736-741,共6页
针对源代码中复杂条件语句将增加程序的复杂性,影响代码的易理解性、可测试性、可维护性和可扩展性等问题,提出了一种基于抽象语法树和多态机制的复杂条件语句自动重构方法,用于识别源代码中复杂条件语句的重构时机并实施自动代码重构... 针对源代码中复杂条件语句将增加程序的复杂性,影响代码的易理解性、可测试性、可维护性和可扩展性等问题,提出了一种基于抽象语法树和多态机制的复杂条件语句自动重构方法,用于识别源代码中复杂条件语句的重构时机并实施自动代码重构。首先将源代码转换为抽象语法树,再探测代码中的条件语句,寻找满足预定条件的条件语句,最后利用多态机制对条件语句进行自动重构,将其封装到一系列子类中。对4个开源项目进行重构时机识别和自动重构实验。实验结果表明,重构时机识别算法的精确率可达100%,并能准确地实现代码的自动重构;经回归测试,重构后的代码未引入任何错误;此外,该算法具有较好的性能,执行时间与系统规模呈线性关系,能够应用于各类不同规模的系统。 展开更多
关键词 抽象语法树 复杂条件语句 重构时机识别 多态 重构
在线阅读 下载PDF
基于抽象语法树的数据泥团自动检测研究 被引量:3
9
作者 刘宏韬 刘伟 胡志刚 《计算机应用与软件》 2017年第1期15-20,共6页
数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上... 数据泥团是一种常见的代码味道,它将带来重复代码和维护难度增加等问题。针对大部分已有的代码味道自动检测工具无法检测数据泥团,且检测类型不全面等问题,提出一种基于抽象语法树的数据泥团自动检测方法。该方法在已有检测工具的基础上,增加了新的数据泥团类型,并加入了剔除冗余数据泥团和提取子数据泥团等步骤。通过对4个开源项目进行数据泥团实验,结果表明方法具有较高的精确率,与Stench Blossom、inFusion等工具的数据泥团自动检测功能相比,能够检测出一些其他工具无法检测的数据泥团。同时,该方法具有较好的性能,执行时间与系统规模成正比。 展开更多
关键词 代码味道 数据泥团 抽象语法树 源代码解析 重构
在线阅读 下载PDF
基于抽象语法树的C#源代码SQL注入漏洞检测算法 被引量:4
10
作者 孙伟 陈林 《信息安全研究》 2015年第2期112-125,共14页
SQL注入攻击是数据库安全的主要威胁.SQL注入攻击被列为OWASP(open Web application security project)2010年和2013年十大Web应用系统安全威胁之首.SQL注入攻击检测及防御是目前常见的研究热点,结合抽象语法树的数据传播分析及C#语言特... SQL注入攻击是数据库安全的主要威胁.SQL注入攻击被列为OWASP(open Web application security project)2010年和2013年十大Web应用系统安全威胁之首.SQL注入攻击检测及防御是目前常见的研究热点,结合抽象语法树的数据传播分析及C#语言特性,提出基于规则及特征匹配的漏洞检测架构,实现了C#源代码的静态检测算法.测试结果表明该算法效果良好,简单实用,通过生成源代码的抽象语法树及追踪数据的传播途径,根据规则匹配进行检测,实现C#源代码的SQL注入漏洞检测,在开发阶段提高了代码的安全性;同时提出的漏洞检测框架可以进行拓展,实现对其他编程语言的SQL注入漏洞检测. 展开更多
关键词 SQL注入 抽象语法树 数据流分析 规则匹配 静态分析
在线阅读 下载PDF
规范抽象语法与抽象语法树的直接生成 被引量:1
11
作者 张幸儿 《计算机学报》 EI CSCD 北大核心 1990年第12期926-933,共8页
抽象语法树在很多应用领域中是一个重要的工具,但是在概念上不一致与不规范。本文提出了抽象语法(树)的设计准则,并引进规范抽象语法的概念。本文还给出了为一个源程序从文法直接生成改进的规范抽象语法树的算法。改进的规范抽象语法树... 抽象语法树在很多应用领域中是一个重要的工具,但是在概念上不一致与不规范。本文提出了抽象语法(树)的设计准则,并引进规范抽象语法的概念。本文还给出了为一个源程序从文法直接生成改进的规范抽象语法树的算法。改进的规范抽象语法树结点数远比通常语法分析树少。内存需求量的剧降与应用软件运行的加速,使语法树有实际的应用价值,也可扩大其应用范围。 展开更多
关键词 规范抽象语法 抽象语法树 数据结构
在线阅读 下载PDF
基于软件历史仓库和抽象语法树的相似缺陷识别方法 被引量:7
12
作者 龚丹 王甜甜 +1 位作者 苏小红 董美含 《系统工程与电子技术》 EI CSCD 北大核心 2020年第10期2399-2408,共10页
软件开发过程中,软件开发人员常常通过搜索软件历史仓库(historical software repository,HSR),再经复制/粘贴以实现软件复用。HSR中会保存被复用的代码的缺陷及修复信息,辅助处理相似缺陷。基于此,提出一种基于HSR挖掘的相似缺陷识别... 软件开发过程中,软件开发人员常常通过搜索软件历史仓库(historical software repository,HSR),再经复制/粘贴以实现软件复用。HSR中会保存被复用的代码的缺陷及修复信息,辅助处理相似缺陷。基于此,提出一种基于HSR挖掘的相似缺陷识别方法。首先,基于变更日志的分析,从HSR中提取出已知缺陷的模块,建立bug模块库。然后,采用基于抽象语法树(abstract syntax tree,AST)的相似代码检测方法,识别待测试软件与bug模块库中相似的代码,并借助HSR中保存的相应缺陷及修复信息,完成待测试软件中可能包含潜在缺陷的模块的识别。同时,为提高相似代码的识别精度,优化基于AST的代码特征度量。在18个C程序、164对克隆代码上进行实验,结果表明所提方法能够识别出全部相似代码且性能优于已有工具。在人工构建的bug模块库上验证了代码相似性对相似缺陷识别的作用。最后,在8个真实的大型C项目上进行验证,平均缺陷召回率达到94%,表明挖掘HSR可以有效地为跨项目传播的相似代码提供缺陷理解支持。 展开更多
关键词 软件复用 软件历史仓库 克隆代码 相似缺陷 抽象语法树
在线阅读 下载PDF
基于抽象语法树的软件度量工具的设计与实现 被引量:5
13
作者 牛家浩 黄志球 +1 位作者 张静 刘佳 《计算机应用》 CSCD 北大核心 2003年第10期39-41,共3页
为了提高软件质量和控制,改善软件开发过程,文中提出了以抽象语法树为核心的软件度量工具(ASTMT)的体系结构图,介绍了度量工具的功能及特点,详细论述了工具中各个模块的设计与实现方法,着重讨论了抽象语法树的组成及其节点设计。介绍该... 为了提高软件质量和控制,改善软件开发过程,文中提出了以抽象语法树为核心的软件度量工具(ASTMT)的体系结构图,介绍了度量工具的功能及特点,详细论述了工具中各个模块的设计与实现方法,着重讨论了抽象语法树的组成及其节点设计。介绍该工具在软件开发中的实际应用,进而验证了工具的实用性与有效性。 展开更多
关键词 软件度量 度量工具 抽象语法树
在线阅读 下载PDF
基于重子节点抽象语法树的软件缺陷预测 被引量:7
14
作者 黄晓伟 范贵生 +1 位作者 虞慧群 杨星光 《计算机工程》 CAS CSCD 北大核心 2021年第12期230-235,248,共7页
在实际软件项目开发过程中,软件缺陷预测能辅助测试人员找到项目中可能存在缺陷的位置,并通过抽象语法树(AST)获取项目模块中隐藏的结构和语义信息,此类信息有助于提高缺陷预测精度。提出基于重子节点抽象语法树的缺陷预测方法,在提取... 在实际软件项目开发过程中,软件缺陷预测能辅助测试人员找到项目中可能存在缺陷的位置,并通过抽象语法树(AST)获取项目模块中隐藏的结构和语义信息,此类信息有助于提高缺陷预测精度。提出基于重子节点抽象语法树的缺陷预测方法,在提取节点信息时保留节点的类型信息和对应代码语义的值信息,并使用特殊字符串代替没有值信息的节点。通过树链剖分思想将AST分割为重子节点和轻子节点,优先选择重子节点作为序列化向量中的节点,同时利用深度学习网络学习节点序列中的源代码结构和语言实现软件缺陷预测。实验结果表明,与DFS方法相比,该方法在基于注意力机制的循环神经网络深度学习模型上的F1值和AUC值平均提升约3%和4%,具有更好的缺陷预测效果。 展开更多
关键词 软件质量保障 软件缺陷预测 代码表征 抽象语法树 深度学习
在线阅读 下载PDF
一个重建GCC抽象语法树的方法 被引量:7
15
作者 刘文伟 刘坚 《计算机工程与应用》 CSCD 北大核心 2004年第18期125-128,共4页
抽象语法树(AST)作为程序的一种中间表示形式,在程序分析等诸多领域有广泛的应用。传统的建立AST的方法是通过词法和语法分析的方法。该文提出了一种利用GCC前端结果建立AST的方法,这种方法将GCC编译源程序产生的AST文件,经过一定的格... 抽象语法树(AST)作为程序的一种中间表示形式,在程序分析等诸多领域有广泛的应用。传统的建立AST的方法是通过词法和语法分析的方法。该文提出了一种利用GCC前端结果建立AST的方法,这种方法将GCC编译源程序产生的AST文件,经过一定的格式转换变为XML文档,然后使用XML文档解析器读取该文档,重新建立AST。 展开更多
关键词 GNU编译器集合(GCC) 抽象语法树(AST) 可扩展标记语言(XML)
在线阅读 下载PDF
基于抽象语法树的数组越界的静态检测方法 被引量:2
16
作者 徐明昌 刘坚 《计算机工程》 CAS CSCD 北大核心 2006年第1期108-109,205,共3页
针对数组访问越界这一类安全漏洞,以源程序的抽象语法树作为分析对象,提出了一种新的静态解决方案。该方案通过分析数组访问越界安全漏洞的表现,抽象出安全模式,然后根据安全模式以及遍历ast过程中记录的节点属性构建安全规则,最后在安... 针对数组访问越界这一类安全漏洞,以源程序的抽象语法树作为分析对象,提出了一种新的静态解决方案。该方案通过分析数组访问越界安全漏洞的表现,抽象出安全模式,然后根据安全模式以及遍历ast过程中记录的节点属性构建安全规则,最后在安全规则的指导下实现对安全漏洞的检测。 展开更多
关键词 数组访问越界 抽象语法树(AST) 安全漏洞 安全模式 安全规则
在线阅读 下载PDF
使用抽象语法树匹配分析Java程序演化 被引量:2
17
作者 周逸勋 陈海波 《计算机应用与软件》 CSCD 2011年第8期196-199,共4页
软件在生命周期中一直在发生演化,对软件演化的分析可以揭示软件发展的一些基本规律。现有方法通常使用改变的代码行数作为软件演化的指标,但是这项指标不能反映软件架构的变化,也不能帮助理解软件演化的具体情况。使用抽象语法树匹配AT... 软件在生命周期中一直在发生演化,对软件演化的分析可以揭示软件发展的一些基本规律。现有方法通常使用改变的代码行数作为软件演化的指标,但是这项指标不能反映软件架构的变化,也不能帮助理解软件演化的具体情况。使用抽象语法树匹配ATS(Abstract Syntax Tree)进行代码分析能够更清楚地了解软件中发生改变的具体内容。针对Java语言编写的软件,可以了解静态域的添加、删除和类型修改;类的添加、删除、类型修改和方法体修改。这些信息能更好地帮助理解软件演化。 展开更多
关键词 软件演化 抽象语法树匹配 演化分析
在线阅读 下载PDF
基于关键词Trie树的GCC抽象语法树消除冗余算法 被引量:6
18
作者 韩磊 胡建鹏 《计算机科学》 CSCD 北大核心 2020年第9期47-51,共5页
GCC(GNU Compiler Collection)编译器编译C语言源程序所生成的抽象语法树文本中包含大量与源代码无关的冗余信息,若直接进行解析,会严重影响分析效率,降低分析精确度,同时会占用大量存储空间。针对此问题,提出一种基于关键词Trie树的GC... GCC(GNU Compiler Collection)编译器编译C语言源程序所生成的抽象语法树文本中包含大量与源代码无关的冗余信息,若直接进行解析,会严重影响分析效率,降低分析精确度,同时会占用大量存储空间。针对此问题,提出一种基于关键词Trie树的GCC抽象语法树消除冗余算法,其根据包含抽象语法树文本有用信息节点的关键词建立Trie树,可实现对抽象语法树文本无用节点的过滤,从而达到优化编译的效果。相比传统KMP消除冗余算法,关键词Trie树算法可以有效避免去冗余过程中常量、变量等有用信息节点的丢失,确保数据的完整性;同时,关键词Trie树算法可以最大限度地减少重复前缀或后缀字符串的比较次数,节省了时空开销。挑选不同长度的C语言源码文件进行去冗余实验,测试该算法的性能,并将其与传统KMP算法进行对比。实验结果表明,所提算法的去冗效率和查准率均得到了极大的提高。 展开更多
关键词 GCC 抽象语法树 关键词Trie 优化编译 KMP 消除冗余
在线阅读 下载PDF
基于抽象语法树压缩编码的漏洞检测方法 被引量:3
19
作者 陈传涛 潘丽敏 +2 位作者 龚俊 马勇 罗森林 《信息安全研究》 2022年第1期35-42,共8页
针对基于抽象语法树的源代码漏洞检测方法难以从大规模语法树中充分提取语法和结构特征,导致漏洞表征能力不足、检测准确率低的问题,提出了一种基于抽象语法树压缩编码(abstract syntax tree compressed coding,ASTCC)的源代码漏洞检测... 针对基于抽象语法树的源代码漏洞检测方法难以从大规模语法树中充分提取语法和结构特征,导致漏洞表征能力不足、检测准确率低的问题,提出了一种基于抽象语法树压缩编码(abstract syntax tree compressed coding,ASTCC)的源代码漏洞检测方法.该方法首先将程序抽象语法树以代码语句为单元分割成1组子树;然后通过递归神经网络对子树进行编码以提取代码语句内语法信息;再将原始语法树中的子树替换为其编码节点,从而在保留结构特征的同时减小原始语法树的深度并减少了叶子节点数量;最后,通过带注意力机制的树卷积神经网络实现源代码漏洞检测.在NVD和SARD公开数据集上的实验结果表明,ASTCC方法能够降低抽象语法树的规模,增强模型对源代码漏洞的表征能力,有效提升漏洞检测的准确率. 展开更多
关键词 漏洞检测 抽象语法树 卷积神经网络 注意力机制 结构特征
在线阅读 下载PDF
简化GCC抽象语法树的新型算法 被引量:4
20
作者 田冰川 孙珂 巢汉青 《计算机科学》 CSCD 北大核心 2015年第S1期516-518 530,530,共4页
抽象语法树是程序源代码的树状表现形式,在代码分析与特征提取过程中发挥着重要作用。GCC可以导出C语言源程序的抽象语法树文件,但其中包含大量冗余信息与无关信息,不利于上述工作的展开。针对此问题,提出一种简化GCC抽象语法树的算法,... 抽象语法树是程序源代码的树状表现形式,在代码分析与特征提取过程中发挥着重要作用。GCC可以导出C语言源程序的抽象语法树文件,但其中包含大量冗余信息与无关信息,不利于上述工作的展开。针对此问题,提出一种简化GCC抽象语法树的算法,在保持语法树基本结构完整的前提下,移除其中与源程序无直接关联的节点,以线性时间复杂度重建语法树文件,达到简化的目的。 展开更多
关键词 GCC 抽象语法树 简化 算法 C语言
在线阅读 下载PDF
上一页 1 2 6 下一页 到第
使用帮助 返回顶部