Open banli17 opened 2 years ago
为了语法分析,需要把单词进行归类。
比如描述赋值语句: 标识符 + 赋值号 就是赋值语句
词法分析由词法分析器 ( Lexical Analyzer, 或 Scanner)完成。 词法分析器一个个扫描字符,输出一个个 token。
将词组合成句子的过程。如汉语中的 主语 + 谓语 + 宾语 -》 句子
将 token 变成树。自底向上。
好处是没有括号,执行顺序和计算顺序一致。
可以用串表示,也可以用树表示。树结构清晰,但是串运算简单。
最后输出四元表达式。
中间代码特点:简单规范、与机器无关、易于优化和转换
适当优化即可,越到后面花大力气优化提升的会很少。
机器无关的优化
局部优化
循环优化
机器有关的优化
模块分类 分析:词法分析 语法分析 语义分析 综合:中间代码生成,代码优化,目标代码生成 辅助: 符号表管理,出错处理
翻译程序 一种语言的程序(源程序)翻译成等价的另一种语言程序(目标程序)
源程序是高级语言程序,目标程序是汇编或机器程序。
解释程序 源程序一句一句输入,翻译成目标程序
编译程序 源程序全部一次翻译成目标程序。
编译系统 编译系统 = 编译程序 + 运行系统(为程序运行提供环境,如运行库、链接等)
其它翻译程序
八大模块