美文网首页
编译器笔记29-中间代码生成-简单赋值语句的翻译

编译器笔记29-中间代码生成-简单赋值语句的翻译

作者: 衣忌破 | 来源:发表于2020-03-02 22:45 被阅读0次
赋值语句翻译的任务
赋值语句翻译的基本任务.png
赋值语句的SDT
赋值语句的SDT.png

注:||表示代码连接符

文法中的两个非终结符,为该两个非终结符设置综合属性code用于存放三地址码。另外我们还为文法符号E设置综合属性addr用于表示表达式的存放地址。

增量翻译 (Incremental Translation)
增量翻译 .png

表达式的code属性要复制子表达式的E1和E2属性,子表达式的code属性则需要复制子表达式的code属性以此类推这样code属性就可能变成比较强得字符串。这样在复制和移动的时候就需要较长时间。事实上同过分析产生式左部的文法符号其code属性是由产生式右部的code属性按顺序连接起来以后在后面追加三地址指令,因此我们可以采用增量的模式进行翻译。在增量的翻译中不需要设置code的属性,而是直接在已生成的三地址码后面追加新的三地址指令。这样我们可以把code对应的行删掉。

0.png 1.png 2.png 3.png 4.png 5.png 6.png 7.png

相关文章

网友评论

      本文标题:编译器笔记29-中间代码生成-简单赋值语句的翻译

      本文链接:https://www.haomeiwen.com/subject/pjvikhtx.html