编译原理(一)

翻译程序

1.功能

源程序->翻译程序->目标程序(目标代码)

翻译程序有三种:编译程序、解释程序、汇编程序

2.基本结构
源程序想要翻译成为目标程序需要下面基本五部分:

词法分析

对构成输入的源程序的字符串进行扫描和分解,识别出一个个单词和符号,如标识符、常数、界限符等。

语法分析

在词法分析的基础上,根据语言的语法规则,把单词符号分解成各类语法单位(语法范畴),如短语、句子、程序段等。

语义分析和中间代码生成

首先对各种语法范畴进行静态语义检查,如果正确则进行中间代码的翻译。该阶段遵循的是语言的语义规则,通常使用属性文法描述语义规则。中间代码的形式有四元式、三元式、逆波兰式和树形表示。

代码优化

优化所遵循的是程序的等价变换原则。其方法有公共子表达式的提取、循环优化、删除无用代码等。

目标代码生成

把中间代码(或经优化处理后)变换成特定机器上的低级语言代码。它有赖于硬件系统结构和机器指令的含义。

请我吃糖~