当前位置:主页 > 科技论文 > 自动化论文 >

一种面向条件表达式语义错误定位与修复的深度学习方法

发布时间:2025-06-04 00:31
  随着计算机的应用越来越广泛,各行各业的人们都开始接触学习编程。在学习编程的过程中,人们会经常使用在线的判题系统(Online Judge系统,简称OJ系统)进行编程练习。在编写程序的过程中,会遇到各种各样的错误和bug需要调试,这些错误和bug通常可以分成语法错误和语义错误两类。人们需要花费大量的时间对代码进行调试,这对刚开始学习编程的人来说非常繁琐和困难,尤其是条件表达式中存在的语义错误,调试难度很高。然而目前的OJ系统并没有进行对应的纠错与引导。近年来,深度学习在自然语言处理、机器翻译、语音识别、计算机视觉等各个领域都有了极好的成绩与效果,这也为代码的自动修改与生成带来了新的方法。因此,本论文基于深度学习的方法对代码的条件表达式中存在的语义错误纠错与修复进行研究,主要的研究工作与创新成果如下:1.提出了一种基于注意力机制(Attention机制)深度神经网络模型的代码语义错误定位方法。我们的模型将使用了注意力机制的深度神经网络模型与指针网络(Pointer Network)相结合,将条件表达式中存在语义错误的代码文本输入模型之后,能够得到错误的行号与位置。经过相关实验实验,验证了该模...

【文章页数】:72 页

【学位级别】:硕士

【部分图文】:

图1.1:程序语义修复方法的流程[1]??目前主流的自动程序修复方法主要有以下三种:基于搜索的方法、基于代??

图1.1:程序语义修复方法的流程[1]??目前主流的自动程序修复方法主要有以下三种:基于搜索的方法、基于代??

?1.1.1传统程序修复方法??传统程序修复方法的主要流程如图1.1所示,首先使用故障定位(fault??localization)方法,给定算法规则,将存在bug的程序代码中的每个语句进行计??算,得到每个语句存在bug的概率,再根据概率进行排序;然后把排序好的语??句,逐个输....


图1.2:?sk-p算法流程??

图1.2:?sk-p算法流程??

2016年,YewenPu等人[7]提出了?sk-p模型,该模型使用了?DDS?(数据驱??动合成)模式,运用了?skip-gmm的处理方法,将代码的前一行和后一行输入到??Seq2Seq神经网络模型中,再根据分布输出正确的代码如图1.2。这个模型能够??同时修复语法错误和语义错....


图1.3:?SSC模型结构??

图1.3:?SSC模型结构??

图1.3:?SSC模型结构??2018年,Sumit?Gulwani等人[8]将聚类算法与自动修复算法相结合的方法??来进行程序语义错误自动修复,如图1.4。他们首先使用聚类算法,将Mooc上??正确的代码样本分类,之后判断错误代码属于哪一类,再使用修复算法产生一??个本地修复方....


图1.4:聚类再修复算法流程图??

图1.4:聚类再修复算法流程图??

(AST?Encoder?Bi-LSTM?^?Share??代码生成的AST树??图1.3:?SSC模型结构??2018年,Sumit?Gulwani等人[8]将聚类算法与自动修复算法相结合的方法??来进行程序语义错误自动修复,如图1.4。他们首先使用聚类算法,将Mooc上??正....



本文编号:4049047

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/zidonghuakongzhilunwen/4049047.html


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

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