自己动手构造编译系统:编译、汇编与链接2.4.1 汇编词法、语法分析
2.4.1 汇编词法、语法分析 汇编语言有独立的词法记号,对于汇编词法的分析,只需要构造相应的词法有限自动机就可以了。举一个简单的例子: mov eax,[ebp-8] 该指令有8个词法记号,它们分别是:'mov''eax'逗号'[''ebp''–''8'和']'。汇编器的词法分析器将词法记号送到语法分析器用于识别汇编语言的语法模块。同...
自己动手构造编译系统:编译、汇编与链接2.1.2 语法分析
2.1.2 语法分析 词法分析器的输入是文本字符串,语法分析器的输入则是词法分析器识别的词法记号序列。语法分析器的输出不再是一串线性符号序列,而是一种树形的数据结构,通常称之为抽象语法树。见图2-4。 继续前面赋值语句的例子,我们可以先看看它可能对应的抽象语法树,如图2-5所示。 图2-5 抽象语...
自己动手构造编译系统:编译、汇编与链接2.1.1 词法分析
2.1.1 词法分析 编译器工作之前,需要将用高级语言书写的源程序作为输入。为了便于理解,我们使用C语言的一个子集定义高级语言,本书后续章节的例子都会使用C语言的一些基本语法作为示例。现在假定我们拥有一段使用C语言书写的源程序,词法分析器通过对源文件的扫描获得高级语言定义的词法记号。所谓词法记号(也称为终结符),反映在高级语言语法中就是对...
自己动手构造编译系统:编译、汇编与链接1.4 设计自己的编译系统
1.4 设计自己的编译系统 根据以上描述,我们意欲构造一个能将高级语言转化为可执行文件的编译系统。高级语言语法由我们自己定义,它可以是C语言语法,也可以是它的一个子集,但是无论如何,该高级语言由我们根据编程需要自行设计。另外,我们要求生成的可执行文件能正常执行,无论它是Linux系统的ELF可执行文件,还是Windows系统的PE文件,而本书选择生成L...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。