摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第12-16页 |
1.1 引言 | 第12页 |
1.2 C语言简介 | 第12-13页 |
1.3 编译器概述 | 第13页 |
1.4 课题的研究现状 | 第13-14页 |
1.5 论文的研究内容与意义 | 第14-15页 |
1.6 论文组织结构 | 第15-16页 |
第二章 编译前端原理与技术 | 第16-31页 |
2.1 词法分析 | 第16-20页 |
2.1.1 字符串表 | 第16-17页 |
2.1.2 记号的描述和识别 | 第17-18页 |
2.1.3 词法分析程序的输入和输出 | 第18页 |
2.1.4 词法分析程序与语法分析程序的关系 | 第18页 |
2.1.5 词法分析程序的流程图 | 第18-20页 |
2.2 语法分析 | 第20-24页 |
2.2.1 上下文无关文法 | 第20页 |
2.2.2 自底向上的分析方法 | 第20-21页 |
2.2.3 移进-归约分析过程中的冲突 | 第21页 |
2.2.4 LR(1)分析方法 | 第21-24页 |
2.2.4.1 LR(1)分析程序的模型 | 第22-23页 |
2.2.4.2 工作过程 | 第23-24页 |
2.3 属性文法 | 第24-26页 |
2.3.1 综合属性 | 第24页 |
2.3.2 继承属性 | 第24-25页 |
2.3.3 依赖图 | 第25页 |
2.3.4 属性的计算次序 | 第25页 |
2.3.5 语义规则计算 | 第25-26页 |
2.4 符号表 | 第26-29页 |
2.4.1 基本实现技术 | 第26页 |
2.4.2 标识符作用域 | 第26-28页 |
2.4.3 符号表作用域嵌套关系表示 | 第28页 |
2.4.4 符号表的操作方式 | 第28-29页 |
2.4.4.1 符号表的建立和删除 | 第28-29页 |
2.4.4.2 插入 | 第29页 |
2.4.4.3 查表 | 第29页 |
2.4.5 符号表的内容 | 第29页 |
2.5 本章小结 | 第29-31页 |
第三章 属性文法的设计与实现 | 第31-37页 |
3.1 简单赋值形式和动作符号 | 第31页 |
3.2 使用分析的语法树表示 | 第31-32页 |
3.3 非终结符作为属性求值函数 | 第32页 |
3.4 符号表作为属性 | 第32-33页 |
3.5 基于属性文法的处理方法 | 第33-34页 |
3.5.1 树遍历的属性计算方法 | 第33-34页 |
3.5.2 直接属性计算的处理方法 | 第34页 |
3.6 S属性定义的自底向上的翻译 | 第34-36页 |
3.6.1 构造语法树 | 第34-35页 |
3.6.2 S-属性文法的自下而上计算 | 第35-36页 |
3.7 小结 | 第36-37页 |
第四章 符号表的设计与实现 | 第37-75页 |
4.1 符号表逻辑结构的组织 | 第37-46页 |
4.1.1 类型信息 | 第38-44页 |
4.1.1.1 类型信息记录结构 | 第38-40页 |
4.1.1.2 内置类型 | 第40页 |
4.1.1.3 数组类型和指针类型 | 第40-41页 |
4.1.1.4 结构类型和联合类型 | 第41-42页 |
4.1.1.5 枚举类型 | 第42页 |
4.1.1.6 函数类型 | 第42-43页 |
4.1.1.7 用户自定义类型 | 第43-44页 |
4.1.2 变量信息 | 第44-45页 |
4.1.3 函数信息 | 第45-46页 |
4.1.3.1 函数存储信息 | 第45页 |
4.1.3.2 函数符号表 | 第45-46页 |
4.1.3.3 函数声明和定义 | 第46页 |
4.2 声明部分的实现 | 第46-74页 |
4.2.1 声明Declarations | 第47-48页 |
4.2.2 存储类说明符Storage-class specifiers | 第48-49页 |
4.2.3 类型说明符Type specifiers | 第49-61页 |
4.2.3.1 基本类型说明符Declaration specifiers | 第49-50页 |
4.2.3.2 结构说明符Structure and union specifiers | 第50-53页 |
4.2.3.3 枚举说明符Enum specifiers | 第53-55页 |
4.2.3.4 对齐模数 | 第55-56页 |
4.2.3.5 数据类型的复合 | 第56-61页 |
4.2.4 声明符Declarators | 第61-66页 |
4.2.4.1 普通变量 | 第61页 |
4.2.4.2 数组变量 | 第61-62页 |
4.2.4.3 指针变量 | 第62-63页 |
4.2.4.4 函数变量 | 第63-65页 |
4.2.4.5 函数定义 | 第65页 |
4.2.4.6 计算数组类型的大小 | 第65-66页 |
4.2.5 类型名称Type names | 第66-67页 |
4.2.6 类型定义Type definitions | 第67页 |
4.2.7 初始化Initialization | 第67-74页 |
4.2.7.1 指派设定项designat-on | 第67-69页 |
4.2.7.2 初始化设定项initializer | 第69-71页 |
4.2.7.3 声明初始化 | 第71-74页 |
4.3 符号表的接口 | 第74页 |
4.4 小结 | 第74-75页 |
第五章 系统测试 | 第75-79页 |
5.1 实验环境 | 第75页 |
5.2 系统测试 | 第75-78页 |
5.2.1 符号信息收集 | 第75-77页 |
5.2.2 作用域嵌套层次关系 | 第77-78页 |
5.3 本章小结 | 第78-79页 |
第六章 总结与展望 | 第79-81页 |
6.1 总结 | 第79-80页 |
6.2 展望 | 第80-81页 |
致谢 | 第81-82页 |
参考文献 | 第82-83页 |