当前位置: 首页 > 专利查询>南京大学专利>正文

基于c和c++软件的依赖结构的文件特征表示方法技术

技术编号:33787730 阅读:22 留言:0更新日期:2022-06-12 14:43
本发明专利技术公开一种基于c和c++软件的依赖结构的文件特征表示方法,该方法包括文件依赖图提取、随机游走采样和模型训练三个步骤:使用clang和llvm分析技术,构造c和c++软件的层次化的文件依赖图;使用随机游走策略,在文件依赖图上采集节点序列集合;构造图表示学习模型,并基于节点序列集合对模型进行训练,从而获得文件的特征表示。本方法基于依赖分析技术和图表示学习技术,可以充分提取局部图结构信息,并生成文件的特征向量。并生成文件的特征向量。并生成文件的特征向量。

【技术实现步骤摘要】
基于c和c++软件的依赖结构的文件特征表示方法


[0001]本专利技术涉及对c和c++软件的依赖分析与图表示学习技术,具体涉及一种基于c和c++软件的依赖结构的文件特征表示方法,属于软件工程和图表示学习领域。

技术介绍

[0002]随着软件的快速发展,软件的规模在急速膨胀,软件的复杂度在急速增加,随之而来的是后续维护与持续开发的成本快速攀升。为了提高软件的可理解性与可维护性,合理的系统结构是必不可少的。为了有效地对软件中的程序文件进行组织管理,开发者需要识别不同文件的职能,并将功能接近的文件组织到相同的目录中。这种组织方式不仅有利于开发者对系统结构进行宏观的理解,同时方便出现问题时进行原因追溯。但由于软件的庞大规模与高度的复杂性,并且软件开发过程往往采取团队协同的工作模式,个体开发者往往难以对整个系统结构、各个文件职能有精准的把握,即便是经验丰富的架构工程师,在对细节的理解上也可能存在疏漏之处。为了有效提高开发者对不同文件间功能相似性的判断效率,需要借助自动化的分析技术提取文件的特征,并利用向量距离等算法评估不同文件的相似性
[000本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于c和c++软件的依赖结构的文件特征表示方法,其特征在于,所述方法包含如下步骤:步骤1),使用clang和llvm分析技术,构造c和c++软件的层次化的文件依赖图;步骤2),使用有偏的随机游走策略,在文件依赖图上进行节点序列采样,得到文件节点序列集合;步骤3),构造图表示学习模型,并基于节点序列集合对模型进行训练,从而得到文件的特征表示。2.根据权利要求1所述的基于c和c++软件的依赖结构的文件特征表示方法,其特征在于,所述步骤1)包含以下子步骤:步骤11),使用clang分析代码中的#include语句,并提取头文件依赖;步骤12),使用clang将c和c++软件中的源文件编译为llvm的中间表示文件;步骤13),使用llvm分析步骤12)获取的中间表示文件,提取源文件包含的符号定义与外部符号使用;步骤14),根据步骤13)中的外部符号使用,定位到定义了对应外部符号的其他源文件,并以此构造源文件依赖;步骤15),根据步骤11)和步骤15)分别提取的头文件依赖和源文件依赖,构造层次化的文件依赖图,用于步骤2)的输入。3.根据权利要求1所述的基于c和c++软件的依赖结构的文件特征表示方法,其特征在于,所述步骤2)包含以下子步骤:步骤21),指定随机游走的步长ι、每个节点上的采样次数η以及控制节点选择概率的超参数p、q;步骤22),取文件依赖图中的一个节点作为起始节点;步骤23),计算当前节点的直接邻居中各个节点的迁移概率,并随机选择一个节点作为下一个访问的节点;步骤24),重复步骤23),直到节点序列长度等于ι,得到一条节点序列;步骤25),重复步骤22)—步骤24),直到图中的每个节点上都经过采样;步骤26),重复步骤22)—步骤25),直到图中的每个节点的采样次数达到η;步骤27),得到一组节点序列集合,用于步骤3)的输入。4.根据权利要求1所述的基于c和c++软件的依赖结构的文件特征表示方法,其特征在于,所述步骤3)包含以下子步骤:步骤31),构造图表示学习模型,并设置训练轮数γ与节点上下文宽度ω;步骤32),从步骤2)中输出的节点序列集合中取一条节点序列;步骤33),取节点序列中的一个节点作为中心节点,获得左右长度为ω范围内的非本节点作为该节点的上下文;步骤34),根据节点的上下文,使用层次化softmax算法计算上下文中的各节点与中心节点的共现概率,然后计算目标函数并使用反向传播算法优化模型;步骤35),重复步骤33)—步骤34),直到该节点序列中的所有节点经过训练;步骤36),重复步骤32)—步骤34),直到所有节点序列都经过训练;步骤37),重复步骤32)—步骤36),直到训练轮数满足γ。
5.根据权利要求3所述的基于c和c++软件的依赖结构的文件特征表示方法,其特征在于,所述步骤23)的迁移概率计算公式为:其中E是依赖图的边集;Z是标准化系数;π
tx
是未标准化的迁移概率,定...

【专利技术属性】
技术研发人员:张天潘敏学陈佳一
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1