摘要 | 第4-5页 |
ABSTRACT | 第5页 |
注释表 | 第10-11页 |
第一章 绪论 | 第11-16页 |
1.1 课题研究背景及意义 | 第11-12页 |
1.2 当前研究现状及选题依据 | 第12-15页 |
1.3 论文研究内容 | 第15-16页 |
第二章 编译知识和相关工具的介绍 | 第16-23页 |
2.1 语言的编译流程 | 第16页 |
2.2 LLVM编译器框架 | 第16-17页 |
2.3 Clang前端和抽象语法树 | 第17-20页 |
2.4 Flex词法分析生成器和Bison语法分析生成器 | 第20-22页 |
2.5 本章小结 | 第22-23页 |
第三章 面向方面语言 | 第23-31页 |
3.1 传统关注点分离模型 | 第23-25页 |
3.1.1 自适应面向对象编程 | 第23页 |
3.1.2 面向主题编程 | 第23-24页 |
3.1.3 元对象编程 | 第24-25页 |
3.1.4 组合过滤编程 | 第25页 |
3.2 面向方面编程的基本概念 | 第25-26页 |
3.3 面向方面编程的技术关键 | 第26-29页 |
3.3.1 接入点设计 | 第26-27页 |
3.3.2 方面表达设计 | 第27-28页 |
3.3.3 切入点匹配设计 | 第28页 |
3.3.4 通知调用织入设计 | 第28-29页 |
3.4 针对C的面向方面解决方案对比 | 第29-30页 |
3.4.1AspectC | 第29页 |
3.4.2AspectC++ | 第29-30页 |
3.4.3InterAspect | 第30页 |
3.5 本章小结 | 第30-31页 |
第四章 MOVEC语言设计与实现 | 第31-50页 |
4.1 MOVEC语言的语法设计 | 第31-35页 |
4.1.1 切入点 | 第31-33页 |
4.1.2 通知 | 第33-34页 |
4.1.3 方面 | 第34-35页 |
4.2 MOVEC语言编译器的设计与实现 | 第35-48页 |
4.2.1 方面代码解析 | 第36页 |
4.2.2 词法分析与宏替换 | 第36-39页 |
4.2.3 语法分析与切入点的匹配 | 第39-42页 |
4.2.4 代码转换 | 第42-48页 |
4.2.5 单文件编译与项目编译 | 第48页 |
4.3 本章小结 | 第48-50页 |
第五章 C语言常见错误的运行时验证插桩 | 第50-60页 |
5.1 常见软件错误定义及相关研究 | 第50-52页 |
5.1.1C语言及其常见错误定义 | 第50-51页 |
5.1.2 整数溢出错误验证插桩相关研究 | 第51-52页 |
5.2 常见错误的验证插桩设计与实现 | 第52-59页 |
5.2.1 除0错误的验证插桩设计与实现 | 第52-53页 |
5.2.2 整数溢出的验证插桩设计与实现 | 第53-57页 |
5.2.3 未初始化变量引用的验证插桩设计与实现 | 第57-59页 |
5.3 本章小结 | 第59-60页 |
第六章 实验与分析 | 第60-67页 |
6.1 实验目标系统介绍 | 第60-61页 |
6.2 实验软硬件平台介绍 | 第61页 |
6.3 实验结果及分析 | 第61-66页 |
6.3.1MOVEC编译器实验 | 第61-65页 |
6.3.2 常见软件错误实验 | 第65-66页 |
6.4 本章小结 | 第66-67页 |
第七章 总结与展望 | 第67-69页 |
7.1 论文总结 | 第67页 |
7.2 工作展望 | 第67-69页 |
参考文献 | 第69-74页 |
致谢 | 第74-75页 |
在学期间的研究成果及发表的学术论文 | 第75页 |