C编译器语法分析的设计与实现
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第11-16页 |
1.1 引言 | 第11页 |
1.2 课题的研究背景和意义 | 第11-12页 |
1.3 课题的研究现状 | 第12-13页 |
1.4 论文的研究内容 | 第13-15页 |
1.4.1 词法分析的设计与实现 | 第13-14页 |
1.4.2 LR(1)语法分析的设计与实现 | 第14页 |
1.4.3 LL(1)语法分析的设计与实现 | 第14-15页 |
1.5 论文的结构 | 第15-16页 |
第二章 词法分析和语法分析相关内容 | 第16-28页 |
2.1 上下文无关文法及C语言 | 第16-17页 |
2.1.1 上下文无关文法 | 第16页 |
2.1.2 文法推导 | 第16-17页 |
2.1.3 C语言 | 第17页 |
2.2 编译器的结构 | 第17-18页 |
2.3 数据结构 | 第18-21页 |
2.3.1 符号表 | 第18页 |
2.3.2 语法树 | 第18-19页 |
2.3.3 哈希表 | 第19-21页 |
2.4 词法分析 | 第21-22页 |
2.4.1 有限状态机 | 第21-22页 |
2.4.2 正则表达式 | 第22页 |
2.5 语法分析 | 第22-27页 |
2.5.1 语法规则 | 第23页 |
2.5.2 FIRST和FOLLOW | 第23-25页 |
2.5.3 移进和归约 | 第25-26页 |
2.5.4 递归下降分析法 | 第26-27页 |
2.6 本章小结 | 第27-28页 |
第三章C编译器词法分析的设计与实现 | 第28-43页 |
3.1 词法分析的作用 | 第28-29页 |
3.2 C编译器词法分析的设计 | 第29-35页 |
3.2.1 字符串解析模块设计 | 第32-33页 |
3.2.2 数值解析模块设计 | 第33-34页 |
3.2.3 其他符号解析模块设计 | 第34-35页 |
3.3 词法错误 | 第35-36页 |
3.4 读写缓冲区管理 | 第36页 |
3.5 C编译器词法分析的实现 | 第36-42页 |
3.5.1 C文法终结符编码 | 第36-37页 |
3.5.2 数据存储 | 第37-40页 |
3.5.3 字符串分析的实现 | 第40-41页 |
3.5.4 数值分析的实现 | 第41-42页 |
3.5.5 其他符号分析的实现 | 第42页 |
3.6 本章小结 | 第42-43页 |
第四章C编译器LR(1)语法分析的设计与实现 | 第43-57页 |
4.1 LR(1)语法分析总体设计 | 第43-45页 |
4.2 LR(1)语法分析算法设计 | 第45-51页 |
4.2.1 LR(1)语法分析算法设计 | 第45-47页 |
4.2.2 LR(1)语法分析归约状态操作集 | 第47-49页 |
4.2.3 LR(1)语法分析归约算法设计 | 第49-50页 |
4.2.4 构建语法分析树算法设计 | 第50-51页 |
4.3 LR(1)语法分析详细设计与实现 | 第51-54页 |
4.3.1 归约栈详细设计 | 第51页 |
4.3.2 产生式表详细设计 | 第51-52页 |
4.3.3 终结符和非终结符到产生式的映射表设计 | 第52-53页 |
4.3.4 终结符和非终结符表详细设计 | 第53-54页 |
4.4 归约冲突 | 第54-56页 |
4.5 本章小结 | 第56-57页 |
第五章C编译器LL(1)语法分析的设计与实现 | 第57-70页 |
5.1 LL(1)语法分析的设计 | 第57-60页 |
5.1.1 LL(1)文法 | 第57页 |
5.1.2 迭代处理左递归 | 第57-59页 |
5.1.3 左公因子和预扫描算法 | 第59-60页 |
5.2 LL(1)语法分析的具体实现 | 第60-69页 |
5.2.1 外部声明部分的具体实现 | 第60-61页 |
5.2.2 语句部分的具体实现 | 第61-63页 |
5.2.3 表达式部分的具体实现 | 第63-66页 |
5.2.4 声明部分的具体实现 | 第66-69页 |
5.3 本章小结 | 第69-70页 |
第六章 系统测试 | 第70-89页 |
6.1 实验环境 | 第70页 |
6.2 哈希函数性能测试 | 第70-71页 |
6.3 词法分析器的功能测试 | 第71-73页 |
6.4 LR(1)语法分析器的功能测试 | 第73-82页 |
6.4.1 声明和定义测试 | 第74-78页 |
6.4.2 初始化测试 | 第78-80页 |
6.4.3 表达式测试 | 第80-81页 |
6.4.4 语句测试 | 第81-82页 |
6.5 LL(1)语法分析器的功能测试 | 第82-87页 |
6.6 时间复杂度和性能分析 | 第87-88页 |
6.7 本章小结 | 第88-89页 |
第七章 总结与展望 | 第89-92页 |
7.1 总结 | 第89-90页 |
7.2 下一步工作 | 第90-92页 |
致谢 | 第92-93页 |
参考文献 | 第93-95页 |