面向媒体处理器可重定目标编译器的设计研究
摘要 | 第3-5页 |
ABSTRACT | 第5页 |
目录 | 第7-9页 |
第1章 序论 | 第9-33页 |
1.1 编译器的发展历史 | 第9-10页 |
1.2 可重定目标编译器的研究技术 | 第10-15页 |
1.2.1 可重定目标编译器概述 | 第10-14页 |
1.2.2 面临的技术问题 | 第14-15页 |
1.3 可重定目标编译器的设计方法 | 第15-23页 |
1.3.1 典型可重定目标编译器的构建技术 | 第16-18页 |
1.3.2 面向对象的可重定目标编译技术 | 第18-20页 |
1.3.3 代码生成器的自动构造技术 | 第20-23页 |
1.4 媒体处理器MD32的体系结构 | 第23-31页 |
1.4.1 流水结构 | 第23-26页 |
1.4.2 指令系统 | 第26-28页 |
1.4.3 寄存器文件 | 第28-29页 |
1.4.4 寻址方式 | 第29-31页 |
1.5 本文的主要研究工作、创新点及内容安排 | 第31-33页 |
第2章 编译器前端实现技术研究 | 第33-59页 |
2.1 词法分析 | 第33-35页 |
2.1.1 扫描和构词 | 第33-34页 |
2.1.2 词法分析的输出 | 第34-35页 |
2.1.3 词法分析和语法分析的接口方式 | 第35页 |
2.2 语法与语义分析 | 第35-48页 |
2.2.1 LALR(1)语法分析方法 | 第36-38页 |
2.2.2 语法树的构建 | 第38-47页 |
2.2.3 词法、语法分析程序的自动产生 | 第47-48页 |
2.3 符号表结构 | 第48-55页 |
2.3.1 C语言标识符的作用域与名字空间 | 第48-49页 |
2.3.2 Hash表 | 第49-51页 |
2.3.3 作用域的层次表 | 第51-54页 |
2.3.4 名字空间的区分 | 第54-55页 |
2.4 中间代码的生成 | 第55-58页 |
2.4.1 生成函数和库函数 | 第55-56页 |
2.4.2 二元操作生成中间代码 | 第56-57页 |
2.4.3 为控制语句生成中间代码 | 第57-58页 |
2.5 本章小节 | 第58-59页 |
第3章 可重定目标编译器的设计研究 | 第59-89页 |
3.1 可重定目标编译器的系统结构 | 第59-60页 |
3.2 多目标代码生成的支持方式 | 第60-80页 |
3.2.1 中间表示 | 第61-63页 |
3.2.2 机器描述 | 第63-80页 |
3.2.3 编译主体与机器描述间的接口 | 第80页 |
3.3 代码生成器的构造技术 | 第80-87页 |
3.3.1 寄存器分配 | 第81-82页 |
3.3.2 树模式匹配的代码生成算法 | 第82-87页 |
3.4 本章小结 | 第87-89页 |
第4章 代码优化与编译系统验证 | 第89-119页 |
4.1 汇编级并行指令生成的方法 | 第90-100页 |
4.1.1 工作平台 | 第90-94页 |
4.1.2 并行指令生成的限制 | 第94-96页 |
4.1.3 并行指令生成的实现方法 | 第96-100页 |
4.2 编译系统的验证(测试) | 第100-110页 |
4.2.1 编译系统的测试方法 | 第101-102页 |
4.2.2 编译系统的测试流程与测试用例 | 第102-103页 |
4.2.3 编译器的测试方法 | 第103-106页 |
4.2.4 编译器测试工具的结构 | 第106-110页 |
4.3 编译器支持减少寄存器文件读写次数 | 第110-117页 |
4.3.1 算法提出的背景 | 第110-111页 |
4.3.2 具有使能控制的旁路逻辑的硬件结构 | 第111-112页 |
4.3.3 静态实现数据回写控制 | 第112-117页 |
4.3.4 软件仿真结果 | 第117页 |
4.4 本章小结 | 第117-119页 |
全文总结 | 第119-121页 |
参考文献 | 第121-131页 |
作者攻读博士学位期间发表的学术论文 | 第131页 |
作者攻读博士学位期间参与的科研工作 | 第131-133页 |
致谢 | 第133-134页 |