摘要 | 第1-5页 |
Abstract | 第5-9页 |
图目录 | 第9-10页 |
表目录 | 第10-11页 |
第一章 引言 | 第11-22页 |
·面向方面编程的起源 | 第11-14页 |
·结构化和面向对象的程序设计 | 第11-12页 |
·结构化和面向对象程序设计的问题 | 第12-14页 |
·面向方面编程(AOP) | 第14-16页 |
·关注问题的分离 | 第14-16页 |
·AOP 的三个开发步骤 | 第16页 |
·类AOP 和AOP 语言定位横切关注点 | 第16-20页 |
·合成过滤器 | 第16-17页 |
·自适应性编程(Adaptive Programming) | 第17页 |
·多维方法 | 第17-18页 |
·反射方法 | 第18页 |
·混合方法 | 第18-19页 |
·AspectJ | 第19-20页 |
·本文的研究内容和成果 | 第20-21页 |
·论文的组织结构 | 第21-22页 |
第二章 AOP 的现状分析及一种新方案设计 | 第22-27页 |
·AOP 语言的基本规范 | 第22-23页 |
·连接点 | 第22页 |
·Advice | 第22-23页 |
·Pointcut | 第23页 |
·Aspect | 第23页 |
·AOP 语言的实现类型 | 第23-24页 |
·目前各AOP 实现存在的问题 | 第24-25页 |
·AOP 的发展趋势 | 第24页 |
·目前各AOP 实现的不足 | 第24-25页 |
·造成各AOP 实现不足的原因 | 第25页 |
·一种针对AOP 实现的不足的解决方案 | 第25-26页 |
·小结 | 第26-27页 |
第三章 LLVM 编译器体系结构简介 | 第27-42页 |
·LLVM 简介 | 第27-29页 |
·LLVM 的代码实现 | 第29-35页 |
·LLVM 指令集概述 | 第29-30页 |
·语言不相关类型信息,Cast&GetElementPtr | 第30-32页 |
·显式内存分配和统一的内存模型 | 第32页 |
·函数调用和异常处理 | 第32-35页 |
·文本格式,二进制,和内存实现 | 第35页 |
·LLVM 编译器体系结构 | 第35-39页 |
·LLVM 编译器框架的高级设计 | 第36-37页 |
·编译时:扩展前端和静态优化器 | 第37-38页 |
·链接器和过程间优化器 | 第38页 |
·离线或JIT 原始代码生成器 | 第38页 |
·运行时路径剖面和再编译 | 第38-39页 |
·基于终端用户的剖面信息的离线再优化 | 第39页 |
·与低级虚拟机相关的一些研究工作 | 第39-40页 |
·小结 | 第40-42页 |
第四章 基于LLVM 的运行时多语言AOP 系统的设计实现 | 第42-70页 |
·总体设计 | 第42-44页 |
·LLVM 可以提供的支持 | 第42页 |
·总体结构设计和各模块的功能概述 | 第42-44页 |
·LLVM 的扩展方法 | 第44-45页 |
·实现动态织入的几个重要数据结构 | 第45-50页 |
·连接点图 | 第45-48页 |
·Advice | 第48-49页 |
·Aspect 结构 | 第49-50页 |
·织入器设计 | 第50-61页 |
·织入点的定位 | 第50-55页 |
·Advice 的织入方式 | 第55-57页 |
·连接点上下文的访问方法 | 第57-60页 |
·其他问题 | 第60-61页 |
·织入器的执行流程 | 第61页 |
·匹配器设计 | 第61-68页 |
·XML 文件模式 | 第61-67页 |
·匹配器的具体执行流程 | 第67-68页 |
·辅助功能模块设计 | 第68-69页 |
·advice 优先级问题 | 第68页 |
·与控制程序的交互问题 | 第68-69页 |
·小结 | 第69-70页 |
第五章 AOP 系统的测试和分析 | 第70-84页 |
·测试原理和分析原则 | 第70-71页 |
·一个具体例子的测试分析 | 第71-79页 |
·测试环境 | 第71页 |
·测试用例 | 第71-75页 |
·预期结果 | 第75页 |
·测试结果及分析 | 第75-79页 |
·多组测试用例的结果分析 | 第79-83页 |
·试验数据 | 第79-81页 |
·分析工具 | 第81页 |
·分析结果 | 第81-83页 |
·小结 | 第83-84页 |
第六章 总结与展望 | 第84-86页 |
·主要工作总结 | 第84-85页 |
·今后工作展望 | 第85-86页 |
致谢 | 第86-87页 |
参考文献 | 第87-91页 |
在学期间研究成果 | 第91页 |