期刊文献+
共找到178篇文章
< 1 2 9 >
每页显示 20 50 100
Matching Source Code Using Abstract Syntax Trees in Version Control Systems 被引量:1
1
作者 Jonathan van den Berg Hirohide Haga 《Journal of Software Engineering and Applications》 2018年第6期318-340,共23页
Software projects are becoming larger and more complicated. Managing those projects is based on several software development methodologies. One of those methodologies is software version control, which is used in the ... Software projects are becoming larger and more complicated. Managing those projects is based on several software development methodologies. One of those methodologies is software version control, which is used in the majority of worldwide software projects. Although existing version control systems provide sufficient functionality in many situations, they are lacking in terms of semantics and structure for source code. It is commonly believed that improving software version control can contribute substantially to the development of software. We present a solution that considers a structural model for matching source code that can be used in version control. 展开更多
关键词 VERSION Control Source Code MATCHING abstract syntax tree STRUCTURED Representation
在线阅读 下载PDF
基于BERT和自注意力SRU的AST级Webshell检测方法
2
作者 李道丰 宁梓桁 《信息网络安全》 北大核心 2025年第2期270-280,共11页
Webshell作为一种隐蔽性强、危害性大的网页后门,已在网络安全领域受到广泛关注。Webshell代码的混淆技术显著降低了传统检测方法的有效性,且许多传统检测模型未能有效应对高效处理大量数据的需求。因此,文章提出一种结合BERT词嵌入、双... Webshell作为一种隐蔽性强、危害性大的网页后门,已在网络安全领域受到广泛关注。Webshell代码的混淆技术显著降低了传统检测方法的有效性,且许多传统检测模型未能有效应对高效处理大量数据的需求。因此,文章提出一种结合BERT词嵌入、双向SRU网络结合自注意力机制的Webshell检测方法BAT-SRU。该方法通过抽象语法树提取代码特征,结合样本解混淆与危险函数统计提升特征质量,并采用BAT-SRU模型进行检测。现有方法如基于Word2Vec与双向GRU的检测方法、基于操作码序列与随机森林的分类方法以及基于Text-CNN的AST特征提取方法,存在特征表达不足和对复杂混淆代码适应性差的问题。相比上述方法,BAT-SRU在检测PHP Webshell上性能更优异,得到了准确率99.68%、精确率99.13%、召回率99.22%和F1值99.18%的实验结果。此外,与RNN及其变体模型相比,BAT-SRU在训练时间上可以节约23.47%,在推理时间上可以节省40.14%。 展开更多
关键词 PHP Webshell 抽象语法树 BERT词嵌入 SRU 自注意力
在线阅读 下载PDF
基于规则验证的Dockerfile临时文件静态检测方法
3
作者 苏珲 张建辉 +1 位作者 曾俊杰 楚小茜 《计算机工程》 北大核心 2025年第3期189-196,共8页
Dockerfile中存在的临时文件问题使Docker镜像打包了超过其功能所需的不必要的文件资源,导致镜像尺寸增大,影响了镜像传输和部署的效率。现有的动态分析法在运行时会产生大量日志,造成较大的系统开销,而静态分析法无法检测出临时文件的... Dockerfile中存在的临时文件问题使Docker镜像打包了超过其功能所需的不必要的文件资源,导致镜像尺寸增大,影响了镜像传输和部署的效率。现有的动态分析法在运行时会产生大量日志,造成较大的系统开销,而静态分析法无法检测出临时文件的多种变化形式,限制了其在日常检测中的有效应用。提出一种Dockerfile临时文件静态检测方法,通过规则验证收集21种临时文件形式,使用节点关联算法改进抽象语法树(AST)结构,提高检测效率,并在节点关联的AST(NA-AST)结构基础上使用着色机制对节点进行处理,保证检测完整性。实验结果表明,相较于现有方法,所提方法能够以较小的时间开销检测出文件中存在的各种临时文件形式。此外,提供一种对临时文件形式分类的依据,其可用于对后续临时文件新增形式的分析和检测,具有较高的普适性。 展开更多
关键词 Docker技术 容器 Dockerfile临时文件 抽象语法树 镜像
在线阅读 下载PDF
智能合约漏洞检测及自动化修复方法
4
作者 王嘉诚 蒋佳佳 +1 位作者 张玉书 赵佳豪 《计算机工程与设计》 北大核心 2025年第1期107-116,共10页
为解决智能合约存在的安全漏洞问题,研究智能合约漏洞检测及自动化修复方法。对智能合约进行漏洞检测,获得包含漏洞类别及位置等关键信息的检测报告,将智能合约源代码解析为抽象语法树格式,根据检测报告提供的漏洞信息,结合预定义漏洞... 为解决智能合约存在的安全漏洞问题,研究智能合约漏洞检测及自动化修复方法。对智能合约进行漏洞检测,获得包含漏洞类别及位置等关键信息的检测报告,将智能合约源代码解析为抽象语法树格式,根据检测报告提供的漏洞信息,结合预定义漏洞修复模板,在抽象语法树层面对智能合约进行修复,根据抽象语法树反向解析获得修复后的智能合约源代码,实现智能合约的漏洞检测及自动化修复。实验结果表明,所研究的方法能够以较高的成功率修复智能合约漏洞,增强智能合约的正确性。 展开更多
关键词 区块链 智能合约 安全漏洞 漏洞检测 自动化修复 抽象语法树 修复模板
在线阅读 下载PDF
一种CMA数值预报模式代码质量检测方法与实现
5
作者 李佳静 杨泽 +3 位作者 王彬 刘易凡 董泽信 孟涛 《应用气象学报》 北大核心 2025年第2期155-163,共9页
中国气象局(CMA)数值预报的统筹研发对支撑平台的能力建设提出了更高要求,其中一个重要方面就是对数值预报模式代码的质量检测能力。目前缺乏有效针对数值预报模式代码的质量检测方法和工具,尤其对于性能缺陷和大规模代码的检测不能满... 中国气象局(CMA)数值预报的统筹研发对支撑平台的能力建设提出了更高要求,其中一个重要方面就是对数值预报模式代码的质量检测能力。目前缺乏有效针对数值预报模式代码的质量检测方法和工具,尤其对于性能缺陷和大规模代码的检测不能满足需要。为解决上述问题,该文针对子程序定义、数组操作和I/O操作等常见编程规则设计检测方法。该方法采用程序代码解析、抽象语法树匹配和流敏感的静态程序检测等关键技术,其中对分支和循环语句的分析方法有效避免了路径爆炸问题。基于该方法的检测工具在数值预报科创平台V1.0代码协同开发栏目提供使用,并应用于CMA区域数值模式的国省统筹研发。 展开更多
关键词 数值预报模式代码 代码质量 抽象语法树匹配 流敏感程序分析 有穷状态机
在线阅读 下载PDF
基于图神经网络的抗混淆恶意软件检测方法
6
作者 黄文盛 卞云波 《淮阴师范学院学报(自然科学版)》 2025年第1期8-13,共6页
为更准确识别和分析恶意软件行为,提出一种基于图神经网络的抗混淆恶意软件检测方法.该方法使用Cuckoo Sandbox收集网络内软件行为代码序列后,先使用解析器生成器读取、处理和执行软件行为代码序列,生成软件代码二进制文件的抽象语法树... 为更准确识别和分析恶意软件行为,提出一种基于图神经网络的抗混淆恶意软件检测方法.该方法使用Cuckoo Sandbox收集网络内软件行为代码序列后,先使用解析器生成器读取、处理和执行软件行为代码序列,生成软件代码二进制文件的抽象语法树.利用开源工具中的Joern对软件行为代码抽象语法树内的控制节点和控制边界进行遍历,生成软件行为代码图.以软件行为代码图作为基础,使用离散傅里叶变换方式提取软件行为代码图内恶意软件行为代码节点特征.将恶意软件行为代码特征输入到图神经网络模型内,图神经网络模型对恶意软件行为代码特征进行调用后,生成恶意软件行为代码调用图.对该调用图进行图采样、图嵌入以及信息融合等处理,运用预测层输入恶意软件抗检测结果.实验表明:该方法具备较强的软件行为代码属性图生成能力,可有效提取恶意软件行为代码特征,同时可准确检测不同类型恶意软件,且该方法具备较强的抗混淆性,应用性较佳. 展开更多
关键词 图神经网络 代码属性图 傅里叶变换 抽象语法树 节点特征 恶意软件检测
在线阅读 下载PDF
编译型嵌入式Python的设计与实现 被引量:2
7
作者 李春亭 王宜怀 +1 位作者 施连敏 张露 《计算机工程与设计》 北大核心 2024年第1期79-87,共9页
针对面向微控制器的解释型MicroPython具有实时性弱、占用存储空间大和可移植性较差等问题,提出一种将Python语言转化为C++语言并将构件层与应用层分离的编译型嵌入式Python方案,设计基于抽象语法树及类型注释的源码映射机制。在此基础... 针对面向微控制器的解释型MicroPython具有实时性弱、占用存储空间大和可移植性较差等问题,提出一种将Python语言转化为C++语言并将构件层与应用层分离的编译型嵌入式Python方案,设计基于抽象语法树及类型注释的源码映射机制。在此基础上,设计嵌入式Python编译器,实现集成开发环境AHL-GEC-IDE(for Python版),完成Python源文件的编辑、编译、链接和下载。实践结果表明,该编译型Python方案可行,为嵌入式人工智能领域提供了一种实时性较高、编辑编译方便、可移植性较强的编译型Python集成开发环境。 展开更多
关键词 编译型嵌入式Python 微型Python解释器 微控制器 抽象语法树 类型注释 混合编程 可移植性
在线阅读 下载PDF
基于混合图表示的软件变更预测方法
8
作者 杨馨悦 刘安 +2 位作者 赵雷 陈林 章晓芳 《软件学报》 EI CSCD 北大核心 2024年第8期3824-3842,共19页
软件变更预测旨在识别出具有变更倾向的模块,可以帮助软件管理者和开发人员有效地分配资源,降低维护开销.从代码中提取有效的特征在构建准确的预测模型中起着重要作用.近年来,研究人员从利用传统的手工特征进行预测转向具有强大表示能... 软件变更预测旨在识别出具有变更倾向的模块,可以帮助软件管理者和开发人员有效地分配资源,降低维护开销.从代码中提取有效的特征在构建准确的预测模型中起着重要作用.近年来,研究人员从利用传统的手工特征进行预测转向具有强大表示能力的语义特征,他们从抽象语法树(abstract syntax tree,AST)的节点序列中提取语义特征构建模型.但已有研究忽略了AST的结构信息以及代码中丰富的语义信息,如何提取代码的语义特征仍然是一个具有挑战性的问题.为此,提出一种基于混合图表示的变更预测方法.该模型首先结合AST、控制流图(control flow graph,CFG)、数据流图(data flow graph,DFG)等结构信息构建代码的程序图表示,接着利用图神经网络学习出程序图的语义特征,根据该特征预测变更倾向性.所提模型能够融合各种语义信息以更好地表征代码.在多组变更数据集上开展与最新变更预测方法的对比实验,验证了所提方法的有效性. 展开更多
关键词 软件变更预测 图神经网络 AST 控制流图 数据流图
在线阅读 下载PDF
基于CB-Attention的JavaScript恶意混淆代码检测方法
9
作者 徐鑫 张志宁 +2 位作者 吕云山 李立 郑玉杰 《计算机工程与设计》 北大核心 2024年第8期2298-2305,共8页
当今JavaScript代码混淆方法日益多样,现有检测方法在对混淆代检测时会出现漏报和误报的情况,为解决该问题,提出一种基于CB-Attention的JavaScript恶意代码检测方法。由SDPCNN模型和BiLSTM+Attention模型构成,SDPCNN对短距离间的语义特... 当今JavaScript代码混淆方法日益多样,现有检测方法在对混淆代检测时会出现漏报和误报的情况,为解决该问题,提出一种基于CB-Attention的JavaScript恶意代码检测方法。由SDPCNN模型和BiLSTM+Attention模型构成,SDPCNN对短距离间的语义特征信息进行提取,BiLSTM+Attention获取JavaScript代码中长距离间的语义信息特征。为验证所提方法的有效性,将该方法与其它方法进行对比,对比结果表明,该方法具有较好的检测效果,F1-Score可达98.78%。 展开更多
关键词 JavaScript恶意代码 混淆代码 检测模型 增强深度金字塔卷积神经网络 注意力网络 双向长短时记忆网络 长距离特征信息 抽象语法树
在线阅读 下载PDF
基于对比学习的跨语言代码克隆检测方法
10
作者 吕泉润 谢春丽 +1 位作者 万泽轩 魏家劲 《计算机应用研究》 CSCD 北大核心 2024年第7期2147-2152,共6页
代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(abstract syntax tree,AST)的单语言克隆检测已经取得了较为显著的效果,但跨语言代码的AST节点存在同义词、近义词且手工标注数据集成本高等问题,限制了... 代码克隆检测是提高软件开发效率、软件质量和可靠性的重要手段。基于抽象语法树(abstract syntax tree,AST)的单语言克隆检测已经取得了较为显著的效果,但跨语言代码的AST节点存在同义词、近义词且手工标注数据集成本高等问题,限制了现有克隆检测方法的有效性和实用性。针对上述问题,提出一种基于对比学习的树卷积神经网络(contrastive tree convolutional neuraln etwork,CTCNN)的跨语言代码克隆检测方法。该方法首先将不同编程语言的代码解析为AST,并对AST的节点类型和节点值作同义词转换处理,以降低不同编程语言AST之间的差异;同时,采用对比学习扩充负样本并对模型进行训练,使得在小样本数据集下能够最小化克隆对之间的距离,最大化非克隆对之间的距离。最后在公开数据集上进行了评测,精确度达到95.26%、召回率为99.98%、F_(1)为97.56%。结果表明,相较于现有的最好的CLCDSA和C4方法,该模型的检测精度分别提高了432%和3.73%,其F_(1)值分别提升了29.84%和6.29%,证明了所提模型是一种有效的跨语言代码克隆检测方法。 展开更多
关键词 跨语言 代码克隆 对比学习 抽象语法树
在线阅读 下载PDF
基于依赖增强的分层抽象语法树的代码克隆检测
11
作者 万泽轩 谢春丽 +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
SCG-Detector:基于图注意力网络的智能合约漏洞检测方法
12
作者 顾锡国 王志伟 +2 位作者 陈翔 何启帆 崔展齐 《电子学报》 CSCD 北大核心 2024年第12期4101-4112,共12页
随着智能合约被广泛使用,其处理的业务逻辑更加复杂,代码复杂度越来越高,引发了大量安全漏洞.为避免潜在安全漏洞造成的危害,研究人员提出了一系列智能合约漏洞检测方法.但现有方法对合约特征表征不完整,未将合约的语义及结构特征进行... 随着智能合约被广泛使用,其处理的业务逻辑更加复杂,代码复杂度越来越高,引发了大量安全漏洞.为避免潜在安全漏洞造成的危害,研究人员提出了一系列智能合约漏洞检测方法.但现有方法对合约特征表征不完整,未将合约的语义及结构特征进行统一表征,难以准确、全面地检测和识别智能合约中的潜在漏洞和安全风险.为此,本文提出了基于图注意力网络的智能合约漏洞检测方法SCG-Detector(Smart Contract Graph Detector).首先,通过解析合约源代码构建抽象语法树(Abstract Syntax Tree,AST)以表征合约语法结构信息,并在AST上添加表示语义信息的数据依赖关系和控制依赖关系,以构建合约图(Smart Contract Graph,SCG)同时表征合约的语法结构及语义信息;然后,将SCG输入到图注意网络模型中进行训练,利用注意力机制学习合约中漏洞的特征;最后,利用训练好的图注意力网络模型检测合约中是否存在漏洞及所存在漏洞的类型.SCG-Detector在12616个智能合约上进行的实验结果表明,相比于sFuzz、Conkas、ConFuzzius、Mythril、Osiris、Slither、Oyente、MANDO-GURU等8种广泛使用的方法,SCG-Detector的Precision最高提升了26.46%,Recall最高提升了69.64%,F1最高提升了59.57%. 展开更多
关键词 智能合约 图注意力网络 合约图 抽象语法树 数据依赖关系 控制依赖关系
在线阅读 下载PDF
基于抽象语法树特征迁移的软件漏洞检测方法(AST-FMVD) 被引量:1
13
作者 李子俊 李涛 +6 位作者 陈浩东 余琴 乔梦晴 李琳 王颉 万振华 宋荆汉 《计算机技术与发展》 2024年第6期81-88,共8页
深度学习在漏洞检测的应用取得了显著的进展。现有漏洞检测算法需要大量的标记数据,通过有监督的方法构建检测模型,在多语言环境中,由于语言的多样性和标记训练样本的缺乏,检测模型可能存在泛化性问题,特别是在小样本领域中可能表现不... 深度学习在漏洞检测的应用取得了显著的进展。现有漏洞检测算法需要大量的标记数据,通过有监督的方法构建检测模型,在多语言环境中,由于语言的多样性和标记训练样本的缺乏,检测模型可能存在泛化性问题,特别是在小样本领域中可能表现不佳。为了解决这一困境,迁移学习可以作为一种解决方案,迁移学习的核心思想是以“举一反三”为核心的算法框架,将某个领域的知识迁移到另一个领域的学习中,从而打破样本数据的制约。该文提出了一种基于特征迁移的漏洞检测方法。通过语义相似性对代码的语法树节点信息进行聚类,可以快速并准确地构建好不同语言之间的节点映射关系,同时在语法树的映射过程中引入上下文感知技术帮助解决歧义或模糊的语法结构,提高解析性能。该方法实现检测样本从未知领域变换到已知领域,利用在原有领域构建的深度学习模型,可以将新领域任务迁移到已知领域,最终解决跨域的知识迁移的应用,并将该方法取名为AST-FMVD。最后通过Java的漏洞检测模型对含有特定漏洞文件的进行检测,实现模型在Python领域中的迁移应用,证明了AST-FMVD的可行性,并通过实验证明AST-FMVD可以实现源域中的训练模型在目标领域仍可以保证原模型良好的检测水平。 展开更多
关键词 深度学习 迁移学习 零样本 漏洞检测 抽象语法树
在线阅读 下载PDF
一种利用抽象语法树的源代码克隆检测模型
14
作者 孙雪凯 刘春玲 蒋烈辉 《信息工程大学学报》 2024年第6期667-673,共7页
代码克隆在提高开发效率和降低开发成本的同时,也会给软件维护带来困难,并导致代码中漏洞和错误的传播。针对代码克隆检测问题,借助于抽象语法树(AST),提出一种能够捕捉语义和结构信息的源代码克隆检测模型。首先,该模型利用代码片段的... 代码克隆在提高开发效率和降低开发成本的同时,也会给软件维护带来困难,并导致代码中漏洞和错误的传播。针对代码克隆检测问题,借助于抽象语法树(AST),提出一种能够捕捉语义和结构信息的源代码克隆检测模型。首先,该模型利用代码片段的抽象语法树获得一个路径集合,并生成对应的路径上下文;其次,通过一个全连接神经网络对路径进行编码,将编码后的路径聚合为一个向量来表示代码片段;最后,通过计算两个代码向量之间的距离获得它们的语义相关性,再利用神经网络和一个sigmoid函数获得它们的相似性。实验结果表明,所提出的模型能够有效检测出源代码的功能相似性。 展开更多
关键词 软件开发 代码克隆 软件维护 抽象语法树 神经网络
在线阅读 下载PDF
位置结构导向的多模态代码摘要生成方法
15
作者 张学君 侯霞 《北京信息科技大学学报(自然科学版)》 2024年第2期43-49,共7页
针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未... 针对软件维护中的自动代码摘要任务,提出了一种创新的模型,旨在解决现有方法在保留源代码语义结构信息方面的不足。该模型采用图神经网络和Transformer技术,以更全面地捕捉代码的语义信息和结构信息。此外,采用字节对编码算法来处理未登录词问题,并通过四元组的形式保留抽象语法树的结构信息。这样的组合使得模型在处理源代码时不仅能够全面地捕捉代码的语义特征,还能够准确地学习到代码的语法结构。在真实Java数据集上的实验结果表明,该模型在BLEU、METEOR和ROUGE指标上均优于基线模型,从而验证了其在生成更准确代码摘要方面的有效性。 展开更多
关键词 自动代码摘要 字节对编码 抽象语法树 TRANSFORMER
在线阅读 下载PDF
面向Java多线程机制的软件重构方法 被引量:9
16
作者 张杨 柳晨光 +2 位作者 张冬雯 郑琨 郑雅洁 《北京理工大学学报》 EI CAS CSCD 北大核心 2018年第11期1149-1155,共7页
针对Java语言中Thread和Executor两种线程机制在线程管理模式、代码编写量和性能上的不同,提出了一种面向Java多线程机制的软件自动重构方法,该方法可以实现Thread和Executor之间的自动重构转换,进而帮助程序员选择更适合的线程机制.在E... 针对Java语言中Thread和Executor两种线程机制在线程管理模式、代码编写量和性能上的不同,提出了一种面向Java多线程机制的软件自动重构方法,该方法可以实现Thread和Executor之间的自动重构转换,进而帮助程序员选择更适合的线程机制.在Eclipse JDT环境下实现了从Thread到Executor的自动重构工具Rethreader.在实验中,使用Rethreader对JGF基准测试程序套件中的Series、Crypt、Lufact、Sparsematmult和Montecarlo等基准程序进行了重构测试,实验结果表明,Rethreader可以在小于1s的短时间内实现从Thread到Executor的转换. 展开更多
关键词 Thread框架 Executor框架 软件重构 软件分析 抽象语法树
在线阅读 下载PDF
一种重构二进制代码中类型抽象的方法 被引量:8
17
作者 马金鑫 李舟军 +2 位作者 忽朝俭 张俊贤 郭涛 《计算机研究与发展》 EI CSCD 北大核心 2013年第11期2418-2428,共11页
重构二进制代码中的类型信息对逆向工程、漏洞分析及恶意代码检测等方面具有重大的意义,由于类型信息在编译过程中被移除,且二进制代码中的低级抽象难以理解,因此类型重构一直被认为是恢复高级抽象遇到的困难问题之一,现有的大多工具对... 重构二进制代码中的类型信息对逆向工程、漏洞分析及恶意代码检测等方面具有重大的意义,由于类型信息在编译过程中被移除,且二进制代码中的低级抽象难以理解,因此类型重构一直被认为是恢复高级抽象遇到的困难问题之一,现有的大多工具对类型重构的准确度不够高.提出一种保守的类型重构方法,针对类型重构引入一种简单的中间语言,基于这种中间语言构造寄存器抽象语法树,并使用寄存器抽象语法树部分解决了基址指针别名问题,可有效收集基本类型和结构体类型的类型约束信息.提出一种判断二进制代码中的循环结构及识别循环变量的方法,可有效收集数组类型的约束信息,并据此生成类型约束,然后通过处理类型约束来重构最终的类型.使用CoreUtils中的15个程序作为测试用例,将该方法与IDA Pro进行对比实验.实验结果表明提出的方法不仅可以高效地重构数据类型,而且在结构体类型重构方面可恢复比IDA Pro多达5倍的数据.对这些数据的人工验证与分析表明,使用该方法重构的类型准确率高. 展开更多
关键词 类型重构 寄存器抽象语法树 中间语言 循环变量 别名分析
在线阅读 下载PDF
消除GCC抽象语法树文本中冗余信息的算法研究 被引量:8
18
作者 李鑫 王甜甜 +1 位作者 苏小红 马培军 《计算机科学》 CSCD 北大核心 2008年第10期170-172,共3页
由GCC编译器对C语言源程序进行语法分析产生的抽象语法树文本存在大量的冗余信息,如果直接对其进行解析,则会产生解析效率低、产生的抽象语法树会占用大量的存储空间的问题。针对此问题,在深入研究GCC抽象语法树文本结构和解析过程的基... 由GCC编译器对C语言源程序进行语法分析产生的抽象语法树文本存在大量的冗余信息,如果直接对其进行解析,则会产生解析效率低、产生的抽象语法树会占用大量的存储空间的问题。针对此问题,在深入研究GCC抽象语法树文本结构和解析过程的基础上,提出了一种高效消除冗余的算法,通过实验证明了算法的正确性和适用性,并提出了GCC抽象语法树解析的数学定义。 展开更多
关键词 抽象语法树(AST) 抽象语法树文本 抽象语法树的解析 规范化的抽象语法树文本 冗余
在线阅读 下载PDF
使用抽象语法树和静态分析的克隆代码自动重构方法 被引量:14
19
作者 于冬琦 彭鑫 赵文耘 《小型微型计算机系统》 CSCD 北大核心 2009年第9期1752-1760,共9页
单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异... 单个软件系统中以及若干个相似系统之间的代码克隆给软件维护增加了很大困难.本文针对运用克隆侦测发现的相似代码片断,提出一种基于抽象语法树和静态分析的代码自动重构方法.该方法首先为克隆代码分别构造抽象语法树,然后运用语句差异度指标建立起语法树之间流程控制语句的对应关系.在此基础上,该方法根据控制流程和基本语句块两个层次上的差异性分析,最终通过代码可变点提取实现克隆代码的自动合并.针对Java代码开发了克隆代码重构支持工具原型,并分别针对JDK1.5和一个业务系统进行了自动重构实验.初步的结果表明,该方法能够准确、有效地辅助开发者实现克隆代码的自动重构. 展开更多
关键词 可变点提取 代码克隆 抽象语法树 再工程 逆向工程
在线阅读 下载PDF
一种基于AST的代码抄袭检测方法 被引量:8
20
作者 张丽萍 刘东升 +1 位作者 李彦臣 钟美 《计算机应用研究》 CSCD 北大核心 2011年第12期4616-4620,共5页
针对目前代码抄袭检测方面的研究大多是基于程序源码层面进行相似度比较,不需要对代码进行语法分析,由于忽略程序语法语义,对稍加结构修改的抄袭行为无法有效检测的现状,提出一种基于AST的代码抄袭检测方法。先将代码进行格式化预处理,... 针对目前代码抄袭检测方面的研究大多是基于程序源码层面进行相似度比较,不需要对代码进行语法分析,由于忽略程序语法语义,对稍加结构修改的抄袭行为无法有效检测的现状,提出一种基于AST的代码抄袭检测方法。先将代码进行格式化预处理,再进行词法分析、语法分析,得到对应的AST;然后遍历AST生成代码序列,对代码序列进行相似度计算,从而得到代码的抄袭检测报告。实验结果表明,该方法能够有效检测出C程序代码的抄袭行为,并对C++、Java等多种程序代码的抄袭检测具有一定的通用性和可扩展性。 展开更多
关键词 抽象语法树 抄袭检测 开源语法分析器 相似度
在线阅读 下载PDF
上一页 1 2 9 下一页 到第
使用帮助 返回顶部