语义分析和中间代码的产生

紧接在词法分析和语法分析之后,编译程序要做的工作是进行静态语义检查和翻译。(图7.1)
静态语义检查
1、类型检查。
2、控制流检查。
3、一致性检查。
4、相关名字检查。
翻译(中间语言)的好处:
(1)便于进行与机器无关的代码优化;
(2)使编译程序改变目标机更容易;
(3)使编译程序的结构在逻辑上更为简单明确,以中间语言为界面,编译前端和后端的接口更清晰。

主要掌握几种常见的中间语言表达形式:
逆波兰表示(后缀式);
三地址代码(四元式、三元式、间接三元式);
图表示法(DAG 和抽象语法树);

后缀式表示法又称逆波兰表示法。
逆波兰式(Reverse Polish Notation)。逆波兰式最早于1920年由 Jan Lukasiewicz 发明,作为一种无需括号的数学表达式。
特点:把运算量(操作数)写在前面,把算符写在后面(后缀)。
例如:a + b 写为ab+;ab写为ab
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40240576/article/details/83828401