一种基于深度学习与程序合成的C/C++程序缺陷自动修复方法

    公开(公告)号:CN108829438A

    公开(公告)日:2018-11-16

    申请号:CN201810727406.8

    申请日:2018-07-05

    Applicant: 南京大学

    Abstract: 本发明基于深度学习与程序合成的C/C++程序缺陷自动修复方法,输入带有缺陷的C/C++程序、错误定位信息、程序需要满足的规约以及满足相同规约正确程序集,通过学习正确程序中的书写结构,建立一个正确书写结构模型;根据错误定位信息,将错误点之前的代码结构作为模型的输入,预测错误点的书写结构,扩展成修复候选项集,并组织成选择表达式的形式;使用程序合成方法,将带有选择表达式的程序和该程序需要满足的规约转化为逻辑表达式,使用约束求解器,在设定的时间内进行求解;根据每个选择表达式的选项,输出最终的C/C++代码,得到修复后程序。本方法在多项式的时间复杂度内修复C/C++程序常见缺陷,保证修复后程序正确性。

    一种基于深度学习与程序合成的C/C++程序缺陷自动修复方法

    公开(公告)号:CN108829438B

    公开(公告)日:2020-04-07

    申请号:CN201810727406.8

    申请日:2018-07-05

    Applicant: 南京大学

    Abstract: 本发明基于深度学习与程序合成的C/C++程序缺陷自动修复方法,输入带有缺陷的C/C++程序、错误定位信息、程序需要满足的规约以及满足相同规约正确程序集,通过学习正确程序中的书写结构,建立一个正确书写结构模型;根据错误定位信息,将错误点之前的代码结构作为模型的输入,预测错误点的书写结构,扩展成修复候选项集,并组织成选择表达式的形式;使用程序合成方法,将带有选择表达式的程序和该程序需要满足的规约转化为逻辑表达式,使用约束求解器,在设定的时间内进行求解;根据每个选择表达式的选项,输出最终的C/C++代码,得到修复后程序。本方法在多项式的时间复杂度内修复C/C++程序常见缺陷,保证修复后程序正确性。

Patent Agency Ranking