基于共享和形状标注的并行语言程序分析与变换
| 摘要 | 第1-5页 |
| ABSTRACT | 第5-10页 |
| 第1章 绪论 | 第10-16页 |
| ·问题描述 | 第10-11页 |
| ·相关工作与研究现状 | 第11-14页 |
| ·常用的并发控制机制 | 第11-12页 |
| ·指针分析与形状分析 | 第12-13页 |
| ·锁分配算法 | 第13-14页 |
| ·研究内容 | 第14-15页 |
| ·论文组织 | 第15-16页 |
| 第2章 SPC-II语言 | 第16-34页 |
| ·具体语法 | 第16-22页 |
| ·共享性 | 第16页 |
| ·并行语句 | 第16-17页 |
| ·共享变量的维持语义 | 第17-19页 |
| ·形状声明 | 第19-20页 |
| ·变量 | 第20-21页 |
| ·程序实例 | 第21-22页 |
| ·抽象语法 | 第22-23页 |
| ·静态语义 | 第23-29页 |
| ·良型类型 | 第24页 |
| ·类型兼容 | 第24-25页 |
| ·良型类型上下文 | 第25页 |
| ·副作用 | 第25-26页 |
| ·共享效果 | 第26页 |
| ·良型表达式 | 第26-28页 |
| ·良型语句 | 第28-29页 |
| ·良型程序 | 第29页 |
| ·动态语义 | 第29-32页 |
| ·抽象机 | 第29-30页 |
| ·操作语义 | 第30-32页 |
| ·总结 | 第32-34页 |
| 第3章 一种链状数据结构细粒度加锁方法 | 第34-46页 |
| ·形状图 | 第34-36页 |
| ·定义 | 第34-35页 |
| ·内存抽象 | 第35-36页 |
| ·维持语义 | 第36页 |
| ·维持分析 | 第36-42页 |
| ·原子命令上的维持分析 | 第37-40页 |
| ·维持数据流分析 | 第40-41页 |
| ·实例分析 | 第41-42页 |
| ·访问控制代码生成 | 第42-43页 |
| ·细粒度锁语句插桩 | 第42页 |
| ·避免死锁 | 第42-43页 |
| ·实验结果和分析 | 第43-44页 |
| ·本章小结 | 第44-46页 |
| 第4章 SPC翻译器的实现 | 第46-66页 |
| ·Suif 编译框架 | 第46-51页 |
| ·中间表示 | 第46-48页 |
| ·控制流图 | 第48-51页 |
| ·SPC-II 设计与实现框架 | 第51-53页 |
| ·SPC 源程序 | 第52页 |
| ·程序分析 | 第52页 |
| ·目标代码 | 第52-53页 |
| ·形状图设计 | 第53-56页 |
| ·形状类型及其关系 | 第53页 |
| ·节点类 | 第53页 |
| ·边类和边集类 | 第53-54页 |
| ·形状图类 | 第54页 |
| ·形状图图形化输出 | 第54-56页 |
| ·维持分析数据流分析设计 | 第56-59页 |
| ·HoldingSetPiece | 第56页 |
| ·HoldingSet | 第56-57页 |
| ·NodeDS | 第57-58页 |
| ·ThreadDS | 第58页 |
| ·HoldingAnalysis | 第58-59页 |
| ·细粒度锁代码生成 | 第59-61页 |
| ·锁分配策略 | 第59-60页 |
| ·结构体类型 | 第60页 |
| ·共享指针类型 | 第60-61页 |
| ·事务内存代码生成 | 第61-62页 |
| ·宏处理 | 第61页 |
| ·变量在存储语句中的变换 | 第61页 |
| ·变量在取值表达式中的变换 | 第61-62页 |
| ·宏定义和函数调用 | 第62页 |
| ·检查器 | 第62-63页 |
| ·内存泄露 | 第62页 |
| ·指针安全问题 | 第62-63页 |
| ·死锁避免 | 第63-64页 |
| ·本章小结 | 第64-66页 |
| 第5章 结束语 | 第66-68页 |
| 参考文献 | 第68-70页 |
| 致谢 | 第70-71页 |
| 在读期间发表的学术论文与取得的研究成果 | 第71页 |