当前位置:主页 > 科技论文 > 软件论文 >

基于机器学习的程序语义理解

发布时间:2022-12-08 05:04
  程序语义理解对程序分析、漏洞检测和恶意代码检测等工作至关重要,然而程序语义理解是一个繁琐耗时的过程,因此需要通过自动化方法来帮助人们完成。机器学习能够从大量代码中学习相关信息,成为了一个研究热点。在设计机器学习模型时,如果能够将关于源代码的先验知识融入到数据的表示中,模型将能更好地理解程序的语义。和代码文本相比,控制流自动机和抽象语法树能够更直观地反映程序语言的结构特性。本文分别以控制流自动机、抽象语法树和程序图作为代码的表示,并设计相关的机器学习模型,分别学习代码不同方面的信息,得到代码的多维向量表示。本文的主要工作概括如下:(1)将控制流自动机作为代码表示,基于Weisfeiler-Lehman Graph kernel模型和Doc2vec模型设计了一种机器模型来学习代码的控制流信息,经过训练模型得到代码的多维表示向量。为了验证该模型能否有效地学习到代码的控制流信息,基于代码表示向量构建一个代码分类器,并在源代码分类任务上与现有的模型进行对比。结果表明,控制流自动机包含的代码信息较少,模型仅能够学习到部分信息,未达到预期目标。(2)由于抽象语法树比控制流自动机包含更多代码细节信息,... 

【文章页数】:80 页

【学位级别】:硕士

【部分图文】:

基于机器学习的程序语义理解


CFA表示学习曲线

基于机器学习的程序语义理解


AST表示学习曲线

基于机器学习的程序语义理解


程序图表示学习曲线


本文编号:3713603

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3713603.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户b9338***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com