1.2.4中间代码生成 为了处理方便和便于代码优 (prologue,'source') 化,在语义分析后通常并不 (add,'23','5',T) 直接产生目标代码,而是生 (store,T,,'x') 成介于二者之间的中同代移。 (diy,'x',’-3,TD) 常见的~有:逆波兰式、三元 (store,T,,'z') 式、四元式及树形结构等。 (mult,‘18,3’,T) 例如,source程序中的第四条 (add,'z,T,T) 赋值语句相应的逆波兰式可 (store,T,,'y') 写成:axy2-div+= (sub,'y,'2,T) source程序相应的四元式表示 (div,T,'4',T) 为: (add,'x',T,T) (store,T,,'a') (epilogue) 1.2.4 中间代码生成 为了处理方便和便于代码优 化,在语义分析后通常并不 直接产生目标代码,而是生 成介于二者之间的中间代码。 常见的~有:逆波兰式、三元 式、四元式及树形结构等。 例如,source程序中的第四条 赋值语句相应的逆波兰式可 写成:a x y 2 - div + := source程序相应的四元式表示 为: (prologue,’source’) (add,’23’,’5’,T) (store,T, ,’x’) (div,’x’,’-3’,T) (store,T, ,’z’) (mult, ‘18’,’3’,T) (add,’z’,T,T) (store,T, ,’y’) (sub,’y’,’2’,T) (div,T,’4’,T) (add,’x’,T,T) (store,T, ,’a’) (epilogue)