[编译原理]0.引论

一、语言处理器

语言处理器有编译器(compiler)、解释器(interpreter)

编译器先把源程序翻译成目标程序,目标程序处理输入产生输出。

解释器自身直接(根据源程序提示)处理输入产生输出。

编译器的处理速度较快,但排错功能不如解释器。

编译器:

                 

解释器:

 

将源程序翻译成目标程序的过程:

二、编译器的结构

编译器由分析(analysis)部分,和综合(synthesis)部分组成。分析部分又称为编译器的前端,综合部分又称为编译器的后端。在前端和后端之间可以加入代码优化部分。

分析部分

1.词法分析(lexical analysis): 这一阶段的任务是分析出输入的代码流中的词素(lexeme), 对于每个词素,词法分析器都会产生一个词法单元(token)。词法单元的格式为<token-name, attribute-value>。

2.语法分析(syntax analysis)

3.语义分析(semantic analysis):这个阶段有一项重要的任务是类型检查(type checking)。

4.中间代码生成(intermediate code generation)

可选阶段

5.代码优化(code optimization):优化的目的是使代码跑的跟快或者更节能。

综合部分

6.代码生成(code generation):这一阶段的输出即为目标代码。

猜你喜欢

转载自www.cnblogs.com/-zyq/p/12319611.html