作品简介

《自己动手写编译器、链接器》讲述了一个真实编译器的开发过程,源语言是以C语言为蓝本,进行适当简化定义的一门新语言,称之为SC语言(简化的C语言),目标语言是大家熟悉的Intelx86机器语言。在本书中,读者将看到从SC语言定义,到SCC编译器开发的完整过程。本书介绍的SCC编译器,没有借助Lex与Yacc这些编译器自动生成工具,纯手工编写而成,更便于学习和理解。为了生成可以直接运行EXE文件,本书还实现了一个链接器。读完本书读者将知道一门全新的语言如何定义,一个真实的编译器、链接器如何编写。

本书适合各类程序员、程序开发爱好者阅读,也可作为高等院校编译原理课程的实践教材。

郑重声明:本书源代码作者已申请版权,仅供读者用于学习研究之目的。未经作者允许,严禁任何组织与个人将其在网络上传播或用于商业用途。对于侵权行为,作者保留提起法律诉讼的权利。源代码相关问题,请与作者联系。

王博俊 张宇 编著。

作品目录

  • 内容简介
  • 序言
  • 自序
  • 第1章 引言
  • 1.1 HelloWorld编译过程分析
  • 1.2 SCC编译器简介
  • 第2章 文法知识
  • 2.1 语言概述
  • 2.2 形式语言
  • 2.3 词法分析方法
  • 2.4 语法分析方法
  • 第3章 SC语言定义
  • 3.1 SC语言的蓝本选择
  • 3.2 SC语言对C89简化原则
  • 3.3 SC语言的字符集
  • 3.4 SC语言词法定义
  • 3.5 SC语言语法定义
  • 3.6 SC语言与C语言功能对比
  • 第4章 SC语言词法分析
  • 4.1 词法分析任务的官方说法
  • 4.2 单词编码
  • 4.3 词法分析用到的数据结构
  • 4.4 错误处理,未雨绸缪
  • 4.5 词法分析过程
  • 4.6 词法着色
  • 4.7 控制程序
  • 4.8 词法分析成果展示
  • 第5章 SC语言语法分析
  • 5.1 外部定义
  • 5.2 语句
  • 5.3 表达式
  • 5.4 语法缩进
  • 5.5 总控程序
  • 5.6 成果展示
  • 第6章 符号表
  • 6.1 符号表简介
  • 6.2 符号表用到的主要数据结构
  • 6.3 符号表的构造过程
  • 6.4 控制程序
  • 6.5 成果展示
  • 第7章 生成COFF目标文件
  • 7.1 COFF文件结构
  • 7.2 生成COFF目标文件
  • 7.3 成果展示
  • 第8章 x86机器语言
  • 8.1 x86机器语言简介
  • 8.2 通用指令格式
  • 8.3 x86寄存器
  • 8.4 指令参考
  • 8.5 生成x86机器语言
  • 8.6 成果展示
  • 第9章 SCC语义分析
  • 9.1 外部定义
  • 9.2 语句
  • 9.3 表达式
  • 9.4 成果展示
  • 第10章 链接器
  • 10.1 链接方式与库文件
  • 10.2 PE文件格式
  • 10.3 链接器代码实现
  • 10.4 SCC编译器、链接器总控程序
  • 10.5 成果展示
  • 10.6 全书代码架构
  • 第11章 SC语言程序开发
  • 11.1 SC语言程序开发流程
  • 11.2 SCC编译器测试程序
  • 11.3 语言举例
  • 参考文献
  • 附录A SC语言文法定义中英文对照表
展开全部