摘要 | 第4-5页 |
Abstract | 第5页 |
第1章 绪论 | 第9-17页 |
1.1 研究背景及意义 | 第9-10页 |
1.2 国内外研究现状 | 第10-14页 |
1.2.1 通过语义及文本差异分析代码修改 | 第10页 |
1.2.2 通过注释与代码共同变化分析代码修改 | 第10-11页 |
1.2.3 通过源代码和测试用例的共同变化分析代码修改 | 第11-12页 |
1.2.4 通过抽象语法树(AST)分析代码修改 | 第12页 |
1.2.5 基于遗传算法自动化修改代码 | 第12-13页 |
1.2.6 通过学习人工补丁自动化修改代码 | 第13-14页 |
1.2.7 其它自动化修改代码 | 第14页 |
1.3 本文主要研究内容 | 第14-15页 |
1.4 论文组织结构 | 第15页 |
1.5 本章小结 | 第15-17页 |
第2章 相关技术研究及技术架构设计 | 第17-21页 |
2.1 编译及程序分析工具LLVM&Clang | 第17页 |
2.2 AST处理工具GumTree | 第17-18页 |
2.3 批量代码抽象化修改工具Coccinelle及SmPL语言 | 第18-19页 |
2.4 本文研究思路及技术架构设计 | 第19-20页 |
2.5 本章小结 | 第20-21页 |
第3章 AST-Pattern及其优化、合并与抽象 | 第21-43页 |
3.1 概述 | 第21-22页 |
3.2 AST-Pattern属性详解 | 第22-25页 |
3.2.1 AST-Pattern节点属性详解 | 第22-24页 |
3.2.2 AST-Pattern连接边属性详解 | 第24-25页 |
3.3 AST-Pattern处理过程及原理 | 第25-26页 |
3.4 AST-Pattern优化 | 第26-31页 |
3.4.1 研究目标 | 第26页 |
3.4.2 方案设计及原理分析 | 第26-30页 |
3.4.3 AST-Pattern优化算法 | 第30-31页 |
3.5 AST-Pattern合并及抽象 | 第31-40页 |
3.5.1 研究目标 | 第31-32页 |
3.5.2 方案设计及原理分析 | 第32页 |
3.5.3 节点匹配 | 第32-37页 |
3.5.4 节点合并及抽象 | 第37-40页 |
3.6 本章小结 | 第40-43页 |
第4章 语义提取及PATCH自动生成 | 第43-63页 |
4.1 概述 | 第43-45页 |
4.1.1 研究目标 | 第43-44页 |
4.1.2 总体设计方案 | 第44-45页 |
4.2 语义信息提取 | 第45-55页 |
4.2.1 方案设计及原理 | 第45-46页 |
4.2.2 语义信息分类提取 | 第46-53页 |
4.2.3 上下文及结构信息提取 | 第53-55页 |
4.3 Coccinelle脚本内容生成 | 第55-61页 |
4.3.1 Coccinelle脚本结构简述 | 第55-56页 |
4.3.2 脚本内容生成详述 | 第56-61页 |
4.4 本章小结 | 第61-63页 |
第5章 实验结果与分析 | 第63-77页 |
5.1 概述 | 第63-65页 |
5.1.1 测试环境 | 第63页 |
5.1.2 整体实验过程设计 | 第63页 |
5.1.3 系统运行效果 | 第63-65页 |
5.2 实验数据 | 第65-70页 |
5.2.1 实验数据选取 | 第65页 |
5.2.2 实验数据概览 | 第65-70页 |
5.3 实验结果 | 第70-74页 |
5.3.1 实验结果统计 | 第70-72页 |
5.3.2 实验结果分析 | 第72-74页 |
5.4 本章小结 | 第74-77页 |
结论 | 第77-79页 |
参考文献 | 第79-83页 |
攻读硕士学位期间所发表的学术论文 | 第83-85页 |
致谢 | 第85页 |