CMP和公用表名COMLIST 以COMMON 1/B1/A,B,C为例 对B(入口为2) 引入CMP后的符号表: NAME CMP 1 A 2 2 B 3 3 0 C0 MLIST表: NAME LENGTH FT B1 1 第0章运行空间存储
第10章 运行空间存储 16 NAME … CMP A B C CMP 和 公用表名 COMLIST 以 COMMON /B1/ A, B, C 为例 引入 CMP 后的符号表: COMLIST 表: NAME LENGTH FT LT … … … ... 1 2 3 填B1, B1.FT=B1.LT=null, length 查COMLIST 新段开始 B1区链完成的最后结果 , FT,LT= 0 表无B1 不变 B1 null null 23 0 0 对A(入口为1 ) 1 1 对B(入口为 2 ) 2 3 0
处理COMMON /BLK1NAMM,NAM2的算法 1,若块名BLK1未出现在COMMLIST中,则把它填入并形成 它的空链(FT和LT原来已经为NULL) 2,把符号表中的NAMM和NAM2标志为属于公用区,并把他们 依次连接到BLK1原链的末端。若原链为空则把NAM1的入口 填到FT栏中。最后,调整LT使它指向新链的末端。 第10章运行空间存储
第10章 运行空间存储 17 1,若块名 BLK1 未出现在 COMMLIST 中,则把它填入并形成 它的空链(FT 和 LT 原来已经为 NULL) 2,把符号表中的 NAM1 和 NAM2 标志为属于公用区,并把他们 依次连接到 BLK1 原链的末端。若原链为空则把 NAM1 的入口 填到 FT 栏中。最后,调整 LT 使它指向新链的末端。 处理 COMMON /BLK1 /NAM1, NAM2的算法
10.1.3 ,等价语句处理 1,等价语句介绍 a,格式: EQUI VALENCE(变量表1),(变量表2) b,用途:同一块中变量共同存储单元 1)节省:EQU(A,B,C,D)共同单元 2)同一量定义不同名字 第0章运行空间存储
第10章 运行空间存储 18 10.1.3 等价语句处理 1, 等价语句介绍 a, 格式: EQUIVALENCE(变量表1),(变量表2) b, 用途: 同一块中变量共同存储单元 1) 节省: EQU(A,B,C,D) 共同单元 2) 同一量定义不同名字
c,使用 1)数组等价:DIMENSI0NA(2,3),D(4) A11A21A12A22A13A23 E0U(A(1,2),B(1)) B1 B2 B3 B4 2)间接联系:D1MA(2,3),B(4) A1HA21A12A22A13A23 EQU(A(1,2),C),(C,B(1)) c B1 B2 B3 B4 3)不可矛盾:D1MA(10) EQU(X,A(1),(X,A(3) A1 A2 A3 A4 A5 A6. D1MA(5),B(10) B2 B3 B4 EQU(A(1),B(2))(A(3),B(3) B1 B2 B3 B4 第10章运行空间存储
第10章 运行空间存储 19 c,使用: 1) 数组等价 : DIMENSION A(2,3), D(4) EQU(A(1,2),B(1)) 2) 间接联系 : DIM A(2,3), B(4) EQU(A(1,2),C),(C,B(1)) 3) 不可矛盾 : DIM A(10) EQU(X, A(1)), (X,A(3)) DIM A(5), B(10) EQU(A(1), B(2))(A(3),B(3)) A11 A21 A12 A22 A13 A23 B1 B2 B3 B4 A1 A2 A3 A4 A5 A6 … B2 B3 B4 B1 B2 B3 B4 A11 A21 A12 A22 A13 A23 C B1 B2 B3 B4
2, 等价语句处理 FORTRAN的等价语句目的在于建立一个程序段中诸变量或数组之间的 存储空间的一致性 例,处理等价语句: EQUIVALENCE (X,A(2,3 ))(1,J,A(1,2),K) 1,规则: a,对于首变1,J属一个等价片,表示I,J占用同一单元 b,对于(仪,A2,),名表中无A2,3,只有A,要指出X与A位置关系,引入 相对数-一A1,相对X的地址 c,对于同一个等价元A11在不同的片中出现,表示这两片的等价元存储是 相关的,他们应予以合并,原则是后一等价片按照第一片调整相对数 10 云行名
第10章 运行空间存储 20 2, 等价语句处理 FORTRAN 的等价语句目的在于建立一个程序段中诸变量或数组之间的 存储空间的一致性 例, 处理等价语句: EQUIVALENCE ( X, A( 2, 3 )),(I, J, A( 1, 2 ), K) 1,规则 : a, 对于首变 I,J 属一个等价片, 表示 I,J 占用同一单元 b, 对于(X, A2,3),名表中无A2,3, 只有A,要指出 X 与 A 位置关系, 引入 相对数---A11,相对 X 的地址. c, 对于同一个等价元 A11 在不同的片中出现, 表示这两片的等价元存储是 相关的, 他们应予以合并, 原则是后一等价片按照第一片调整相对数