《编译原理-龙书》练习第7章

7.1 存储组织

7.2 空间的栈式分配

7.2.4栈中的变长数据,在c语言中所有变长数据都在堆中。

7.2.1 1)这种情况下快排效果最差O(n*n)

2)栈中最多状态情况:

P(1, 9)

P(1, 8)

...

P(1,2)

P(1,1)

共9个

7.2.3  1)              f(5)

                 f(4)                       f(3)

       f(3)            f(2)          f(2) f(1)

   f(2) f(1)    f(1) f(0)    f(1) ff(0)

f(1) f(0)

2)

f(5)

f(4)

f(3)

f(2)

f(1)

参数

返回值

局部s、t

3)

f(5)

f(3)

f(1)

参数

返回值

局部s、t

7.2.4 上面g的活动记录,下面f的活动记录

g参数

g返回值

g中保存的机器状态

g中局部变量

f参数

f返回值                             这一行及以上g创建,g写入值

f控制链

f局部数据

7.2.5

a = a+1 = 4

a = a+2 = 6

a+a = 12

7.2.6 c=4 b=&c a=&b

x = 4 py = &c ppz=&b

c += 1 = 5

c += 2 = 7

x += 3 = 7

return 7+7+7=21

7.3 栈中非局部数据的访问


7.4 堆管理

7.4.1 80 30 60 50 70 20 40

1) 

80 30 60 50 70 20 40
44->28   12   **    

2)

80 30 60 50 70 20 40
      ** ** ** 8

7.5 垃圾回收概述

7.5.1

1) B的引用计数-1

2) X以外其它变量计数-1

3) F引用计数-1

7.5.2 D引用计数-1

7.6 基于跟踪的回收的介绍

7.6.1 1) A->B被删除,标记为reached依次包括X A C F H I G E,B和D将被回收

2)A->C,X A B D E G H C F,没有可以回收

3)A->D,D G将被回收

4)B,C将被回收

7.6.2 只考虑第一个A->B被删除

  Free Unreached Unscanned Scanned
  ** All null null
  ** All-X X null
  ** All-X-A A X
  ... ... ... ...
  ** B,D null X-B,D
  **+B,D      

7.6.3 只考虑第一个A->B被删除

初始:X  A       B     ...    I

           0   100  200 ...   900

计算新位置之前,B,D没有被访问到,其它对象从左往右排

7.6.4

7.7 短停顿垃圾回收


7.8 垃圾回收中的高级论题





你可能感兴趣的:(《编译原理-龙书》练习第7章)