- 软件大小:6.06M
- 软件语言:中文
- 软件类型:国产软件
- 软件类别:免费软件 / 电子图书
- 更新时间:2018-01-03 17:30
- 运行环境:WinAll, WinXP, Win7, Win8, Win10
- 软件等级:
- 软件厂商:
- 官方网站:暂无
85.00M/中文/8.0
6.70M/中文/3.3
135.00M/中文/5.0
535.05M/中文/0.6
6.43M/中文/10.0
自己动手写编译器pdf是一款可以自学编程的计算机电子课本。读者朋友们可以使用本程序自学编程知识,提供了基础的语法分析以及语音编译等知识内容。欢迎需要的用户来绿色资源网下载使用。
《自己动手写编译器、链接器》本书讲述了一个真实编译器的开发过程,源语言是以C语言为蓝本,进行适当简化定义的一门新语言,称之为SC语言(简化的C语言),目标语言是大家熟悉的Intel x86机器语言。在本书中,读者将看到从SC语言定义,到SCC编译器开发的完整过程。
本书介绍的SCC编译器,没有借助Lex与Yacc这些编译器自动生成工具,纯手工编写而成,更便于学习和理解。为了生成可以直接运行EXE文件,本书还实现了一个链接器。读完本书读者将知道一门全新的语言如何定义,一个真实的编译器、链接器如何编写。本书适合各类程序员、程序开发爱好者阅读,也可作为高等院校编译原理课程的实践教材。
第1章引言
1.1HelloWorld编译过程分析1
1.1.1HelloWorld程序源文件1
1.1.2词法分析2
1.1.3语法分析3
1.1.4语义分析3
1.1.5链接器4
1.2SCC编译器简介7
1.2.1SCC编译器架构7
1.2.2SCC编译器开发环境7
1.2.3SCC编译器运行环境8
第2章文法知识
2.1语言概述10
2.2形式语言11
2.2.1字母表和符号串11
2.2.2文法与语言的形式定义12
2.2.3文法与语言的类型13
2.2.4程序设计语言描述工具15
2.3词法分析方法16
2.3.1词法定义例举17
2.3.2状态转换图17
2.3.3词法分析程序流程图17
2.4语法分析方法18
2.4.1LL分析器18
2.4.2LL(k)文法19
2.4.3LL(1)文法19
2.4.4递归子程序法21
2.4.5文法的等价变换24
第3章SC语言定义
3.1SC语言的蓝本选择26
3.1.1K&R C26
3.1.2C8926
3.1.3C9927
3.2SC语言对C89简化原则27
3.3SC语言的字符集27
3.3.1基本字符集28
3.3.2扩展字符集28
3.4SC语言词法定义29
3.4.1关键字29
3.4.2标识符30
3.4.3整数常量31
3.4.4字符常量31
3.4.5字符串常量32
3.4.6运算符及分隔符32
3.4.7注释33
3.5SC语言语法定义33
3.5.1外部定义33
3.5.2语句35
3.5.3表达式39
3.6SC语言与C语言功能对比46
3.6.1关键字46
3.6.2数据类型46
3.6.3存储类型47
3.6.4常量47
3.6.5变量47
3.6.6函数48
3.6.7语句48
3.6.8表达式50
第4章SC语言词法分析
4.1词法分析任务的官方说法52
4.2单词编码53
4.3词法分析用到的数据结构55
4.3.1动态字符串56
4.3.2动态数组58
4.3.3哈希表61
4.3.4单词表62
4.4错误处理,未雨绸缪67
4.5词法分析过程72
4.5.1词法分析主程序72
4.5.2预处理76
4.5.3解析标识符79
4.5.4解析整数80
4.5.5解析字符串80
4.5.6词法分析流程图82
4.6词法着色84
4.7控制程序85
4.8词法分析成果展示86
第5章SC语言语法分析
5.1外部定义87
5.1.1翻译单元87
5.1.2外部声明88
5.1.3类型区分符90
5.1.4结构区分符92
5.1.5函数调用约定95
5.1.6结构成员对齐95
5.1.7声明符96
5.1.8初值符100
5.2语句101
5.2.1复合语句102
5.2.2表达式语句103
5.2.3选择语句104
5.2.4循环语句104
5.2.5跳转语句105
5.3表达式107
5.3.1赋值表达式108
5.3.2相等类表达式109
5.3.3关系表达式109
5.3.4加减类表达式110
5.3.5乘除类表达式111
5.3.6一元表达式112
5.3.7后缀表达式113
5.3.8初值表达式114
5.4语法缩进116
5.4.1用到的全局变量及枚举116
5.4.2语法缩进程序117
5.5总控程序118
5.6成果展示119
第6章符号表
6.1符号表简介121
6.1.1收集符号属性121
6.1.2语义的合法性检查122
6.2符号表用到的主要数据结构123
6.2.1栈结构123
6.2.2符号表结构127
6.2.3数据类型结构132
6.2.4存储类型133
6.3符号表的构造过程134
6.3.1外部声明134
6.3.2类型区分符137
6.3.3结构区分符138
6.3.4声明符144
6.3.5变量初始化149
6.3.6复合语句150
6.3.7sizeof表达式150
6.3.8初等表达式152
6.4控制程序153
6.5成果展示155
第7章生成COFF目标文件
7.1COFF文件结构157
7.1.1基本概念157
7.1.2总体结构158
7.1.3COFF文件头158
7.1.4节头表161
7.1.5代码节内容168
7.1.6数据节与导入节内容168
7.1.7COFF符号表169
7.1.8COFF字符串表173
7.1.9COFF重定位信息173
7.2生成COFF目标文件175
7.2.1生成节表176
7.2.2生成符号表178
7.2.3生成重定位信息182
7.2.4生成目标文件183
7.3成果展示185[1]
第8章x86机器语言
8.1x86机器语言简介187
8.2通用指令格式188
8.2.1指令前缀188
8.2.2操作码190
8.2.3ModR/M字节190
8.2.4SIB字节191
8.2.5偏移量与立即数193
8.3x86寄存器193
8.3.1数据寄存器193
8.3.2变址寄存器193
8.3.3指针寄存器194
8.3.4段寄存器194
8.3.5指令指针寄存器194
8.3.6标志寄存器195
8.4指令参考196
8.4.1符号说明196
8.4.2数据传送指令198
8.4.3算术运算指令200
8.4.4逻辑运算指令203
8.4.5控制转移指令205
8.4.6串操作指令208
8.4.7处理器控制指令208
8.5生成x86机器语言208
8.5.1操作数栈209
8.5.2生成通用指令210
8.5.3生成数据传送指令213
8.5.4生成算术与逻辑运算指令217
8.5.5生成控制转移指令221
8.5.6寄存器使用224
8.5.7本章用到的全局变量227
8.6成果展示227
......
请描述您所遇到的错误,我们将尽快予以修正,谢谢!
*必填项,请输入内容