在源程序的中间表示中“间接三元组”比“四元组”更有优势

Abh*_*osh 5 compiler-construction intermediate-language

考虑作业,a := b*-c + b*-c.

四人间

图 1 上述语句的四元组

以下是红龙书的摘录。

如果多次使用相同的临时值,则间接三元组与四元组相比可以节省一些空间。原因是语句数组中的两个或多个条目可以指向结构的同一行op-arg1-arg2。例如,下图中的行(14)(16)可以组合,然后我们可以组合(15)(17)

三地址语句的间接三重表示

图2 三地址语句的间接三重表示

我的问题是摘录中关于使用间接三元组节省空间的内容,我们也可以对四元组说同样的话,如下:

优化

我们可以将语句的三地址代码写为右侧的代码,而不是上图中左侧的代码...然后我们将得到下面的四元组:

改良四联

这正是摘录中关于间接三元组相对于四元组的优势的内容。

那么我们可以得出什么结论呢?