如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第八章语法制导翻译和中间代码生成8.0语义分析与中间代码生成8.1属性文法例如:ET1+T2|T1orT2Tnum|true|false属性文法可以描述为:在属性文法中,描述属性、断言和语义规则的形式多种多样。例如:简单算术表达式求值的语义描述:属性属性信息的传递8.2语法制导翻译概论举例:扩充的分析栈:状态栈、语义栈和文法符号栈;使得每个文法符号都与语义有关。形式如下表:分析与计算过程8.3中间代码的形式8.3中间代码的形式逆波兰表示8.3中间代码的形式三元式的树形表示8.3中间代码的形式8.3中间代码的形式8.3中间代码的形式8.4简单赋值语句的翻译赋值语句的四元式翻译8.5布尔表达式的翻译布尔表达式的翻译方法控制语句中布尔表达式的翻译方法程序设计语言中的语句标号是标识一个语句的。它在程序中出现有两种意义:一是定义性出现,如:L:S;另一是使用性出现,如:gotoL。编译程序处理过程中,对标号的处理是,程序中某个标号的第一次出现(无论是定义性还是使用性)都要填写标号表:标号名即标号本身或相应的内码表示;定义与否标志为:定义性出现D=1;使用性出现D=0。地址:当D=1时,add为标号L所标识的语句翻译成四元式序列的第一个四元式地址;当D=0时,标号L还未定义,需要将来回填,但这时要把所有以L为转移目标的四元式地址记录下来,以便一旦L确定可以回填。关于拉链回填方法的另外一角度的分析8.6控制结构的翻译8.6控制结构的翻译8.6控制结构的翻译8.6控制结构的翻译8.6控制结构的翻译8.7说明语句的翻译8.8数组的翻译8.8数组的翻译