- 博客(6)
- 收藏
- 关注
转载 中间代码生成
在把一个源程序翻译成目标代码的过程中,一个编译器可能构造出一个或多个中间表示。这些中间表示可以有很多种形式。语法树是一种中间表示形式,他们通常在语法分析和语义分析过程中使用。在源程序的语法分析和语义分析之后,很多编译器生成一个明确的低级的或类机器语言的中间表示。我们可以把这个表示看作是某个抽象机器的程序。该中间表示应该具有两个重要的性质:它应该易于生成,且能够被轻松地翻译为目标机器上的语言。
2014-12-11 14:38:45
2739
转载 语义分析(semantic analysis)
语义分析器使用语法树和符号表中的信息来检查源程序是否和语言定义的语义一直。它同时也收集类型信息,并将这些信息存放在语法树或符号表中,以便在随后的中间代码生成过程中使用。
2014-12-05 15:21:27
2047
转载 语法分析(syntax analysis)
编译器对源程序字符流进行词法分析,生成了词法单元流,而后再经由语法分析器进行语法分析。 在语法分析阶段,语法分析器使用词法分析器生成的各个词法单元的第一个分量来创建树形的中间表示。该中间表示给出了产生的词法单元流的语法结构。一个常用的表示方式是语法树(syntax tree),树中的每个内部结点表示一个运算,而该结点的子结点表示该运算的分量。
2014-12-04 11:31:45
1184
转载 词法分析(lexical analysis)
编译器的第一个步骤称为词法分析。词法分析器读入组成源程序的字符流,并且将它们组织成为有意义的词素的序列。对于每个词素,词法分析器产生如下形式的词法单元(token)作为输出: 这个词法单元将被传递给下一个步骤,即语法分析步骤。
2014-12-03 18:18:08
2746
转载 语法制导翻译
语法制导翻译是通过向一个文法的产生式附加一些规则或程序片段而得到的。当语法分析过程中使用一个产生式时,相应的程序片段就会执行。这些程序片段的执行效果按照语法分析过程的顺序组合起来,得到的结果就是这次分析/综合过程处理源程序得到的翻译结果。
2014-12-03 17:29:08
1056
转载 编译器基本结构
我们可以把编译器看作一个 黑盒子,它能将源程序映射为在语意上等价的目标程序。如果把这个盒子稍微打开一点,我们可以看到这个映射过程由两部分组成:分析部分(编译器前端)和综合部分(编译器后端)。分析部分将源程序分解为多个部分,通过词法分析器转化为对应的词法单元,再由语法分析器转化为语法树的形式。综合部分将中间表示形式转化为用户需要的目标程序。分析部分和综合部分之间还可以加上一个优化部分。对
2014-12-01 14:48:17
1320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人