基于编译器中间语言的软件运行时可靠性研究
摘要 | 第3-4页 |
abstract | 第4-5页 |
第1章 引言 | 第9-17页 |
1.1 研究背景 | 第10-11页 |
1.2 软件运行时可靠性的问题 | 第11-14页 |
1.2.1 完全优化后的插桩缺乏精确的语义信息 | 第11-12页 |
1.2.2 软件运行时可靠性措施缺乏可移植性 | 第12-13页 |
1.2.3 第三方软件库缺乏使用规范 | 第13-14页 |
1.3 本文的工作和创新点 | 第14-16页 |
1.3.1 抽象语法树级别插桩 | 第14-15页 |
1.3.2 基于中间语言的软件错误隔离 | 第15页 |
1.3.3 基于自然语言处理的编程接口文档解析 | 第15-16页 |
1.4 论文结构 | 第16-17页 |
第2章 相关工作 | 第17-42页 |
2.1 插桩方法 | 第17-30页 |
2.1.1 背景介绍 | 第17-22页 |
2.1.2 静态插桩 | 第22-25页 |
2.1.3 动态插桩 | 第25-27页 |
2.1.4 追踪方法 | 第27-30页 |
2.2 软件错误隔离方法 | 第30-36页 |
2.2.1 运行时方法 | 第30-34页 |
2.2.2 静态检查方法 | 第34-36页 |
2.3 自然语言处理方法在软件可靠性领域的应用 | 第36-41页 |
2.3.1 自然语言处理方法 | 第36-37页 |
2.3.2 自然语言处理挖掘软件规范 | 第37-41页 |
2.4 本章小结 | 第41-42页 |
第3章 抽象语法树级别插桩 | 第42-71页 |
3.1 抽象语法树级别插桩概述 | 第42-46页 |
3.1.1 完全优化后程序的调试信息不准确 | 第42-44页 |
3.1.2 抽象语法树级别插桩思路 | 第44-46页 |
3.2 探针设计 | 第46-48页 |
3.3 插桩过程 | 第48-54页 |
3.3.1 解析 | 第48-50页 |
3.3.2 编译 | 第50-51页 |
3.3.3 搜索 | 第51-52页 |
3.3.4 插桩 | 第52-53页 |
3.3.5 正确性 | 第53-54页 |
3.4 离线插桩 | 第54页 |
3.5 在线插桩 | 第54-60页 |
3.5.1 编译时 | 第54-57页 |
3.5.2 运行时 | 第57-60页 |
3.6 实验评测 | 第60-70页 |
3.6.1 实现代码组织 | 第62-63页 |
3.6.2 查找探针位置 | 第63-64页 |
3.6.3 在线插桩代码尺寸 | 第64-65页 |
3.6.4 插桩后程序性能 | 第65页 |
3.6.5 实例分析 | 第65-70页 |
3.7 本章小结 | 第70-71页 |
第4章 基于中间语言的软件错误隔离 | 第71-91页 |
4.1 概述 | 第71-73页 |
4.2 工作流程 | 第73-74页 |
4.3 WebC安全语言变换和检查 | 第74-82页 |
4.3.1 内存访问 | 第75-76页 |
4.3.2 间接调用 | 第76-78页 |
4.3.3 间接跳转 | 第78页 |
4.3.4 双栈模型 | 第78-79页 |
4.3.5 变换实例 | 第79-82页 |
4.4 中间语言的完整支持 | 第82-84页 |
4.4.1 第三方库交互 | 第82-83页 |
4.4.2 栈上内存分配 | 第83页 |
4.4.3 C++特性 | 第83页 |
4.4.4 其他特性 | 第83-84页 |
4.5 实验评测 | 第84-89页 |
4.5.1 可移植性 | 第84-85页 |
4.5.2 运行时开销 | 第85-88页 |
4.5.3 代码尺寸 | 第88页 |
4.5.4 实例分析 | 第88-89页 |
4.5.5 稳定性 | 第89页 |
4.6 本章小结 | 第89-91页 |
第5章 基于自然语言处理的编程接口文档解析 | 第91-106页 |
5.1 从API文档到自然语言解析 | 第91-95页 |
5.1.1 API文档简介 | 第91-93页 |
5.1.2 一个样例API函数文档 | 第93-95页 |
5.2 API文档解析的应用 | 第95-97页 |
5.2.1 运行时可靠性行为约束 | 第95页 |
5.2.2 代码库测试 | 第95-96页 |
5.2.3 代码库模拟 | 第96页 |
5.2.4 程序验证 | 第96-97页 |
5.3 API文档解析的挑战 | 第97-101页 |
5.3.1 识别文档结构 | 第97-98页 |
5.3.2 识别非自然语言单词 | 第98-101页 |
5.4 实验评测 | 第101页 |
5.5 讨论和小结 | 第101-106页 |
5.5.1 对编程接口文档解析的讨论 | 第101-105页 |
5.5.2 小结 | 第105-106页 |
第6章 总结和展望 | 第106-109页 |
6.1 总结 | 第106-107页 |
6.2 展望 | 第107-109页 |
参考文献 | 第109-116页 |
致谢 | 第116-118页 |
个人简历、在学期间发表的学术论文与研究成果 | 第118页 |