三.含数组元素的赋值语句的翻译 1.数组元素的地址计算公式 (1)数组定义的般形式 array A[: u, l2 u2, ...,In: un] of integer 其中l、u分别称为第k维的下、上界; d=uk-1+1称为第k维维长; A[i1i2,…i为某一数组元素
三. 含数组元素的赋值语句的翻译 1. 数组元素的地址计算公式 (1)数组定义的一般形式 array A[l1 :u1 ,l2 :u2 ,. . .,ln :un ] of integer 其中:lk、uk分别称为第k维的下、上界; dk=uk -lk+1 称为第k维维长; A[i1 ,i2 ,…,in ]为某一数组元素
(2)按行存放时的地址公式 设每个元素占一个存储单元则A[i,i2,i 的地址 D=at(i1-1)*d2*d3*…*dn+(2-12)*d3,*d4**dn +…+(n1-n1)*dn+(n-1n) D=CONSPART+VARPART CONSPART=a-C C=(….(1*d2+12)*d3+.…+1n1)*dn+n VARPART=(.i*d2+i2)d3+ .+in-1*dn+
(2)按行存放时的地址公式 设每个元素占一个存储单元,则A[i1 ,i2 ,…,in ] 的地址 D=a+(i1 -l1 )*d2*d3 *…*dn+(i2 -l2 )*d3*d4 *…*dn +…+(in-1 -ln-1 )*dn+(in -ln ) D=CONSPART+VARPART CONSPART=a-C C=(... (l1*d2+l2 )*d3+. . . +ln-1 )*dn+ln VARPART =(. . .(i1*d2+i2 )*d3+. . .+in-1 )*dn+in
(3)数组的描述符一内情向量 内容类型维数 CONSPART各维上、下 界和维长 . d n type CONSPART
(3)数组的描述符—内情向量 内容:类型,维数,CONSPART,各维上、下 界和维长 l1 l2 u1 u2 d1 d2 …... ln un dn n type CONSPART
(4 VARPART的计算 ,D=Dx1*dk+ik,(k=2,3,,n)
(4)VARPART的计算 D1=i1 , Dk=Dk-1*dk+ik , (k=2,3,. . .n)
2含数组元素赋值语句的文法及改写 A→V:=E i[Elist] i Elist→Eit1|E E→E1opE2|E1|(E)V 为了在计算 VARPART的过程中随时查找数 组的内情向量必须改写Eist→list,E|E
2.含数组元素赋值语句的文法及改写 A→V:=E V→i[Elist]│i Elist→Elist1 ,E | E E→E1 op E2│-E1│(E1 )│V 为了在计算VARPART的过程中随时查找数 组的内情向量,必须改写Elist→Elist1 ,E | E