后缀表示相对于四元表达式,节省了空间
跳转语句 跳转到L,并不是跳转到L这个符号,而是跳转到L所标志的表达式
11 14是回填的表示jump的跳转地址
第55讲 习题课以及
第八章 运行时数据区的管理
栈后进先出,适合过程调用
堆则主要用于无序的变量,即不知道什么时候变量声明。
系统栈由编译器建立
老sp用于存放调用程序的活动记录的sp
返回地址存放调用程序的地址 活动记录就是在系统栈中
因为前面还有sp,调用地址等,所以传到i+3
、
全局display地址就是施掉过程的display地址。
第57讲
返回地址是在调用的时候填写的
D表中的项数不是由调用次数决定,而是由嵌套深度决定。
PASAL因为嵌套才有的DISPLAY表。为什么.....
第58讲
代码优化
6.3.10是入口地址
(s)用括号表示四元式的标号
要注意B有重复的赋值,将之前重复的赋值删除掉。
DAG图适合优化,但是占据空间大,还是需要再转回四元式序列
如果从终点还有一条弧指向必经节点,那么就肯定存在循环。
得到父亲节点后,即将父亲节点取交集
实际上就是数据结构里的深度优先遍历
需要注意4->2的循环,其中4的输入可以是5、7、6
找出回边
1 深度优先排序
2. 各节点父亲节点
3. 必经节点集
4. 找出回边