[编译原理]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):这一阶段的输出即为目标代码。 来源: