- 2
- 0
- 约小于1千字
- 约 27页
- 2017-04-23 发布于四川
- 举报
编译原理语义3[控制语句翻译]
第 11 讲;第四章 语义分析和中间代码生成;第四章《语义分析和中间代码生成》
4.5 控制语句的翻译
条件语句if
条件循环语句while
多分支控制语句case(自学)
转移语句goto
重点掌握
通过代码结构图翻译if、while语句(重点)
;4.5 控制语句的翻译;4.5 控制语句的翻译;4.5 控制语句的翻译;为了在扫描条件语句过程中不失时机地处理和回填有关信息,可将G[S]改写为如下的G[S] :
G[S]:?? (1) ?S→CS(1) (2) ?C→if(E) (3) ?S→TPS(2) (4) ?TP→CS(1);else
;
(1)无论是哪种if语句,首先用产生式(2) C→if(E)进行归约,这时E的真出口即为S(1)的第一个四元式;E的假出口地址则作为待填信息放在C的语义变量C.chain中等待回填; 所以:
;
(2)不含else时,用(1) S→CS(1)进行规约,E的假出口是S(1)的出口,将C.chain和S(1).chain一起作为S的待填信息链用函数merge链在一起保留在S的语义值S.chain中:
;
(3)用产生式(2) C→if(E)进行归约之后,如果:条件语句后有else,用(4)继续规约。
;
(4)最后用产生式(3
原创力文档

文档评论(0)