编译原理(七)中间代码生成
2018-01-27 20:03
483 查看
我们以一个排序来演示中间代码生成
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/5858ea730d473fa04c1dd15dd3da211e)
语义动作用到的函数
mkTable(previous):创建符号表,参数为过程id
enter(table,name,type,offset):进入符号表,四个参数分别为:表名,参数名称,参数类型,下标
addWidth(table,width):增加符号表容量,参数为:哪一个符号表,增加多少容量
enterProc(table,name,newtable):进入一个过程,三个参数分别为:从哪个符号表进入,过程名称,过程中的符号表
赋值语句:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/f298aeedccc794993af974a3c366dd73)
上面方法中,lookup:是查找过程对应符号表,emit:做赋值运算
还有其他运算,例如数组查找,布尔表达式,条件判断等,在此就不一一列举了。
语义动作用到的函数
mkTable(previous):创建符号表,参数为过程id
enter(table,name,type,offset):进入符号表,四个参数分别为:表名,参数名称,参数类型,下标
addWidth(table,width):增加符号表容量,参数为:哪一个符号表,增加多少容量
enterProc(table,name,newtable):进入一个过程,三个参数分别为:从哪个符号表进入,过程名称,过程中的符号表
赋值语句:
上面方法中,lookup:是查找过程对应符号表,emit:做赋值运算
还有其他运算,例如数组查找,布尔表达式,条件判断等,在此就不一一列举了。
相关文章推荐
- 编译原理——中间代码生成
- 编译原理-词法分析-语法分析-语义分析生成中间代码-python版
- 语义分析和中间代码生成——哈工大编译原理课程(三)
- 编译原理——中间代码生成
- 编译原理结构框架7语义分析与中间代码生成
- 【编译原理】中间代码(一)
- 中间代码生成器-5-编译原理
- 编译原理课程设计_C--编译器_语法分析&代码生成
- 【编译原理】中间代码(二)
- 编译原理课程设计_C--编译器_语法分析&代码生成 - Justin
- 编译原理之代码生成
- 编译原理结构框架11代码生成
- 编译原理过程简述及中间代码优化
- 中间代码生成器-5-编译原理
- 吉首大学_编译原理实验题_基于预测方法的语法分析程序的设计【通过代码】
- [编译原理代码][NFA转DFA并最小化DFA并使用DFA进行词法分析]
- Unity基于模板生成代码的原理与应用
- 在windows上编译chez scheme代码生成独立可执行文件
- 【转】使用VisualStudio完成自动化C++代码生成和编译工作(GacUI)
- 编译原理程序设计实践(八)— 主程序代码和makefile文件