| 摘要 | 第3-5页 |
| ABSTRACT | 第5-6页 |
| 第一章 绪论 | 第11-17页 |
| 1.1 研究背景 | 第11-13页 |
| 1.2 相关研究 | 第13-14页 |
| 1.3 研究意义 | 第14-15页 |
| 1.4 论文的主要工作 | 第15-16页 |
| 1.5 本文的组织结构 | 第16-17页 |
| 第二章 ASPECTJ 语言和PIPA 语言简介 | 第17-28页 |
| 2.1 AOP 的实现机制和 ASPECTJ | 第17-21页 |
| 2.1.1 AOP 实现机制 | 第17-19页 |
| 2.1.2 AspectJ 概述 | 第19-21页 |
| 2.2 JML | 第21-24页 |
| 2.2.1 JML 概述 | 第21-23页 |
| 2.2.2 JML 实例 | 第23-24页 |
| 2.3 PIPA语言简介 | 第24-27页 |
| 2.3.1 Pipa 概述 | 第25-26页 |
| 2.3.2 Pipa 语言实例 | 第26-27页 |
| 2.4 本章小结 | 第27-28页 |
| 第三章 RUNTIME ASSERTION CHECKING 技术 | 第28-34页 |
| 3.1 RUNTIME ASSERTION CHECKING技术的来源和背景 | 第28-29页 |
| 3.2 构建RUNTIME ASSERTION CHECKER 的一般方法 | 第29-31页 |
| 3.2.1 一般方法和各方法的代表性系统 | 第29-30页 |
| 3.2.2 jmlc | 第30-31页 |
| 3.3 为PIPA构建 RUNTIME ASSERTION CHECKING编译器面临的主要问题 | 第31-33页 |
| 3.4 本章小结 | 第33-34页 |
| 第四章 系统总体设计和相关工具 | 第34-42页 |
| 4.1 总体设计 | 第34-36页 |
| 4.2 系统所利用的现有工具 | 第36-41页 |
| 4.2.1 abc 概述 | 第37-38页 |
| 4.2.2 abc 的特点 | 第38-39页 |
| 4.2.3 abc 的使用和代码结构 | 第39-41页 |
| 4.3 本章小结 | 第41-42页 |
| 第五章 PIPA 语言RUNTIME ASSERTION CHECKING 编译器的详细设计与实现 | 第42-64页 |
| 5.1 前端预处理器的设计与实现 | 第42-58页 |
| 5.1.1 before(after)Advice 规格的处理 | 第42-47页 |
| 5.1.2 around Advice 规格的处理 | 第47-48页 |
| 5.1.3 Intertype 的处理 | 第48-49页 |
| 5.1.5 Aspect 的继承 | 第49-51页 |
| 5.1.6 Side Effects | 第51-52页 |
| 5.1.7 规格冗余 | 第52-53页 |
| 5.1.8 预处理器的详细设计和工作过程 | 第53-58页 |
| 5.1.9 小结 | 第58页 |
| 5.2 系统各部分组件的集成 | 第58-62页 |
| 5.2.1 预处理器和abc | 第59-61页 |
| 5.2.2 调用jmlc | 第61页 |
| 5.2.3 小结 | 第61-62页 |
| 5.3 系统的可靠性和完备性分析 | 第62页 |
| 5.4 本章小结 | 第62-64页 |
| 第六章 实验与评估 | 第64-71页 |
| 6.1 有效性验证 | 第64-66页 |
| 6.2 JAVA/ASPECTJ 基准程序测试 | 第66-70页 |
| 6.2.1 Java 基准程序测试 | 第66-67页 |
| 6.2.2 AspectJ 基准程序测试 | 第67-70页 |
| 6.3 本章小结 | 第70-71页 |
| 第七章 全文总结 | 第71-74页 |
| 7.1 文章总结 | 第71-72页 |
| 7.2 研究展望 | 第72-74页 |
| 参考文献 | 第74-78页 |
| 附录 | 第78-87页 |
| 附录1: 带有 PIPA规格的REALSQUAREROOTEXAMPLE 程序 | 第78-79页 |
| 附录2: REALSQUAREROOTEXAMPLE程序经预处理后得到的代码 | 第79-80页 |
| 附录3: 经过织入后的最终代码 | 第80-87页 |
| 致谢 | 第87-89页 |
| 攻读硕士学位期间已发表或录用的论文 | 第89-91页 |