8-第八章存儲空間組織-3節(jié)-縮減版ppt課件_第1頁
8-第八章存儲空間組織-3節(jié)-縮減版ppt課件_第2頁
8-第八章存儲空間組織-3節(jié)-縮減版ppt課件_第3頁
8-第八章存儲空間組織-3節(jié)-縮減版ppt課件_第4頁
8-第八章存儲空間組織-3節(jié)-縮減版ppt課件_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、8.3 靜態(tài)存儲分配靜態(tài)存儲分配FORTRAN語言語言如果編譯時能確定一個程序在運行時所需的存貯空如果編譯時能確定一個程序在運行時所需的存貯空間大小,則可以在編譯時安排目標(biāo)程序的全部數(shù)據(jù)間大小,則可以在編譯時安排目標(biāo)程序的全部數(shù)據(jù)空間,并確定每個數(shù)據(jù)項的單元地址。這種存貯空空間,并確定每個數(shù)據(jù)項的單元地址。這種存貯空間分配方法稱為間分配方法稱為 “ “靜態(tài)存儲分配靜態(tài)存儲分配”。靜態(tài)存儲分配特點靜態(tài)存儲分配特點 1). 1). 編譯時刻確定存儲位置;編譯時刻確定存儲位置; 2). 2). 目標(biāo)程序執(zhí)行時不必進(jìn)行存儲管理。目標(biāo)程序目標(biāo)程序執(zhí)行時不必進(jìn)行存儲管理。目標(biāo)程序 代碼特別簡單、高效。代碼

2、特別簡單、高效。 FORTRANFORTRAN語言的特點:(語言的特點:(FORTRAN 77FORTRAN 77) 1). 1). 過程不允許遞歸調(diào)用過程不允許遞歸調(diào)用 一個過程的兩個活動的生存期不相交,因此一一個過程的兩個活動的生存期不相交,因此一 個過程的所有活動可以使用同一個活動記錄;個過程的所有活動可以使用同一個活動記錄; 2). 2). 每個數(shù)據(jù)名所需的存儲空間大小是常數(shù),沒有每個數(shù)據(jù)名所需的存儲空間大小是常數(shù),沒有 可變數(shù)組等;可變數(shù)組等; 3). 3). 數(shù)據(jù)名的性質(zhì)完全確定;不能動態(tài)地建立數(shù)據(jù)數(shù)據(jù)名的性質(zhì)完全確定;不能動態(tài)地建立數(shù)據(jù) 構(gòu)造;構(gòu)造; 因此可以采用因此可以采用“靜

3、態(tài)存儲分配靜態(tài)存儲分配”。由于每個由于每個FORTRAN FORTRAN 程序段可以獨立編譯,運行前由程序段可以獨立編譯,運行前由裝入程序把各段連成可運行的整體。裝入程序把各段連成可運行的整體。通常按數(shù)據(jù)區(qū)組織存儲通常按數(shù)據(jù)區(qū)組織存儲: :每個程序段定義一個局部數(shù)據(jù)區(qū),用來存放程序段每個程序段定義一個局部數(shù)據(jù)區(qū),用來存放程序段中未出現(xiàn)在中未出現(xiàn)在COMMONCOMMON里的局部名的值。里的局部名的值。每個公用塊定義一個公用數(shù)據(jù)區(qū),用來存放公用塊每個公用塊定義一個公用數(shù)據(jù)區(qū),用來存放公用塊里各個名字的值。里各個名字的值。每個數(shù)據(jù)區(qū)有一個編號,地址分配時,在符號表中,每個數(shù)據(jù)區(qū)有一個編號,地址分配

4、時,在符號表中,對每個數(shù)據(jù)名登記:對每個數(shù)據(jù)名登記: (所屬數(shù)據(jù)區(qū)編號,在該區(qū)中的相對位置)(所屬數(shù)據(jù)區(qū)編號,在該區(qū)中的相對位置)8.3.1 FORTRAN8.3.1 FORTRAN數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)= =局部區(qū)局部區(qū)(1(1個個/ /程序段程序段) )全局區(qū)全局區(qū)主程序主程序子程序子程序1子程序子程序n編編譯譯目標(biāo)代碼目標(biāo)代碼 常常 數(shù)數(shù) 局部數(shù)據(jù)區(qū)局部數(shù)據(jù)區(qū)主主程程序序. . . .無名公共區(qū)無名公共區(qū)有名公共區(qū)有名公共區(qū)1有名公共區(qū)有名公共區(qū)m.1.1.各數(shù)據(jù)區(qū)編號,并統(tǒng)計各數(shù)據(jù)區(qū)編號,并統(tǒng)計 長度,便于分配空間;長度,便于分配空間; 2.2.數(shù)據(jù)區(qū)僅分配地址,構(gòu)數(shù)據(jù)區(qū)僅分配地址,

5、構(gòu) 成映象成映象( (虛空間虛空間) ),真正,真正 的空間運行時才建立,的空間運行時才建立, 并可以使用;并可以使用;全局區(qū)全局區(qū)目標(biāo)代碼目標(biāo)代碼 常常 數(shù)數(shù) 局部數(shù)據(jù)區(qū)局部數(shù)據(jù)區(qū)子子程程序序 1目標(biāo)代碼目標(biāo)代碼 常常 數(shù)數(shù) 局部數(shù)據(jù)區(qū)局部數(shù)據(jù)區(qū)子子程程序序 n局部數(shù)據(jù)區(qū)的內(nèi)容:局部數(shù)據(jù)區(qū)的內(nèi)容: 返回地址:存放此程序段結(jié)束時的返回地址。返回地址:存放此程序段結(jié)束時的返回地址。寄存器保護(hù)區(qū):調(diào)用本程序段時寄存器中的信息,當(dāng)寄存器保護(hù)區(qū):調(diào)用本程序段時寄存器中的信息,當(dāng) 本程序段結(jié)束后,可以恢復(fù)到調(diào)用前的狀態(tài);本程序段結(jié)束后,可以恢復(fù)到調(diào)用前的狀態(tài);形式單元:存放實在參數(shù)的地址或值。形式單元:

6、存放實在參數(shù)的地址或值。FORTRAN語言語言 采用兩種方式共存的形式。采用兩種方式共存的形式。 傳地址:一個單元,存放地址;傳地址:一個單元,存放地址; 得結(jié)果:二個單元,存放地址、值;得結(jié)果:二個單元,存放地址、值;數(shù)組:按列存放;數(shù)組:按列存放;臨時變量:語義分析引入。臨時變量:語義分析引入。臨時變量臨時變量數(shù)組數(shù)組簡單變量簡單變量形式單元形式單元寄存器保護(hù)區(qū)寄存器保護(hù)區(qū)返回地址返回地址地地址址名名字字N NA AM ME E性性質(zhì)質(zhì)A AT TT TR RI IB BU UT TE ED DA A A AD DD DR RS SW WA AP P子子程程序序,二二目目A A啞啞,實實變

7、變量量k ka aB B啞啞,實實變變量量k ka a+ +2 2T T實實變變量量k ka a+ +4 4寄存器保護(hù)區(qū)寄存器保護(hù)區(qū)返回地址返回地址ATBa臨時變量臨時變量數(shù)組數(shù)組簡單變量簡單變量形式單元形式單元寄存器保護(hù)區(qū)寄存器保護(hù)區(qū)返回地址返回地址例:子程序段:例:子程序段:SUBROUTINE SWAP(A,B)SUBROUTINE SWAP(A,B)T=AT=AA=BA=BB=TB=TRETURNRETURNENDEND設(shè):實型量占設(shè):實型量占2 2個機器字個機器字8.3.2 8.3.2 公共語句、等價語句介紹公共語句、等價語句介紹數(shù)據(jù)對象的物理存儲空間管理,對程序的空間利用數(shù)據(jù)對象的

8、物理存儲空間管理,對程序的空間利用效率有很大的影響,效率有很大的影響,COMMON COMMON 和和E QUIVALENCE E QUIVALENCE 這兩這兩個語句提供了足夠強大的控制存儲空間的功能。個語句提供了足夠強大的控制存儲空間的功能。COMMON COMMON :處理不同程序單位之間的數(shù)據(jù)共享。通:處理不同程序單位之間的數(shù)據(jù)共享。通常常用于在不同程序單位之間進(jìn)行數(shù)據(jù)的批量傳遞,它用于在不同程序單位之間進(jìn)行數(shù)據(jù)的批量傳遞,它比采用參數(shù)傳遞的方式效率要高。比采用參數(shù)傳遞的方式效率要高。 EQUIVALENCE EQUIVALENCE : * *)處理同一個程序單元中的多個對象共享一個存

9、)處理同一個程序單元中的多個對象共享一個存 儲空間,以節(jié)省內(nèi)存。儲空間,以節(jié)省內(nèi)存。 因此,主程序和過程之間;過程相互之間不同因此,主程序和過程之間;過程相互之間不同 變量不能用變量不能用EQUIVALENCEEQUIVALENCE語句來指定共用存儲語句來指定共用存儲 單元。單元。 * *)允許用兩個或更多的變量名代表同一個量。)允許用兩個或更多的變量名代表同一個量。 COMMONCOMMON、EQUVILENCEEQUVILENCE: 這兩個語句功能過于強大,這兩個語句功能過于強大,濫用會導(dǎo)致對程序的理解和維護(hù)變得非常困難。濫用會導(dǎo)致對程序的理解和維護(hù)變得非常困難。FORTRANFORTRA

10、N語言存儲空間的模式描述:語言存儲空間的模式描述:1).1).存儲單位:存儲單個存儲單位:存儲單個FORTRANFORTRAN數(shù)據(jù)值的內(nèi)存空間數(shù)據(jù)值的內(nèi)存空間; ; integer,real,boolean integer,real,boolean:占一個機器字:占一個機器字; ; Complex( Complex(復(fù)數(shù)復(fù)數(shù)),double(),double(雙精度實型雙精度實型) ): 占兩個相繼的機器字占兩個相繼的機器字; ;例:例:INTEGER I, J, K(3) COMPLEX X REAL A IJK(1) K(2) K(3)AX數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)2).2).存儲序列:存儲序列: 任意

11、多個連續(xù)的數(shù)據(jù)單位就構(gòu)成了一個存儲序列;任意多個連續(xù)的數(shù)據(jù)單位就構(gòu)成了一個存儲序列; 一個數(shù)組對象構(gòu)成一個存儲序列;一個數(shù)組對象構(gòu)成一個存儲序列; 一個公用塊構(gòu)成一個存儲序列;一個公用塊構(gòu)成一個存儲序列; 等價語句中的等價列表的所有對象構(gòu)成一等價語句中的等價列表的所有對象構(gòu)成一 個存儲序列;個存儲序列;3).3).兩個數(shù)據(jù)對象如果共享了同一個存儲序列,那么它兩個數(shù)據(jù)對象如果共享了同一個存儲序列,那么它 們就稱為具有存儲關(guān)聯(lián)的關(guān)系。如果它們只是共享們就稱為具有存儲關(guān)聯(lián)的關(guān)系。如果它們只是共享 了同一個存儲序列的部分存儲單位,那么它們稱為了同一個存儲序列的部分存儲單位,那么它們稱為 具有部分存儲關(guān)

12、聯(lián)的關(guān)系。具有部分存儲關(guān)聯(lián)的關(guān)系。公共區(qū):一塊有名字的、被共享的存儲空間。公共區(qū):一塊有名字的、被共享的存儲空間。 無名公共區(qū):一個;無名公共區(qū):一個; 有名公共區(qū):多個;有名公共區(qū):多個;公共語句:公共語句: COMMON /COMMON /公共塊名公共塊名1/ 1/ 變量名表變量名表1 , 1 , / /公共塊名公共塊名2/2/變量名表變量名表2. 2. 其中:其中: * *) )變量名不得是啞元、可分配數(shù)組、自動對象等。變量名不得是啞元、可分配數(shù)組、自動對象等。 * *) )不同程序單元中不同程序單元中, ,同一公用區(qū)中的變量名可以不同。同一公用區(qū)中的變量名可以不同。 按位置一一對應(yīng)共享

13、同一存儲單元中的數(shù)值。按位置一一對應(yīng)共享同一存儲單元中的數(shù)值。 * *) COMMON) COMMON語句是說明語句,必須在可執(zhí)行語句之前。語句是說明語句,必須在可執(zhí)行語句之前。主主: common /X,Y common /B1/A,B,C/D,E,F(5) 子子1: common /I,Q(5) common /B1/F(5)/B2/P(3)子子2: common /B1/X(4) common /B2/Y,Z Complx Y,Z無名區(qū)無名區(qū)XYDEF(1) F(2) F(3) F(4)F(5)I Q(1) Q(2) Q(3) Q(4) Q(5)B1區(qū)區(qū)ABCF(1) F(2) F(3)

14、 F(4)F(5)X(1) X(2) X(3) X(4)B2區(qū)區(qū)P(1) P(2) P(3)YZ無名區(qū)無名區(qū)B1區(qū)區(qū) B2區(qū)區(qū)主主9 93 30 0子子1 16 65 53 3子子2 20 04 44 4最終最終長度長度9 95 54 4F F、Q Q部分部分存儲關(guān)聯(lián)存儲關(guān)聯(lián)X X、I I存存儲關(guān)聯(lián)儲關(guān)聯(lián)COMMON /COM/M(5),N(4) CALL FIB WRITE(*,(1X,4I3)N END SUBROUTINE FIBCOMMON /COM/J(5),K(4)DO 10 I=1,4K(I)=J(I+1) J(I) 10 CONTINUE ENDBLOCK DATA COMMO

15、N /COM/K(5),L(4) DATA K/8,7,10,4,13/ END 答案:答案: -1 3 -6 9 -1 3 -6 9 COMCOM區(qū)區(qū)主程序主程序 FIBFIBDATADATAM(1)M(1)J(1)J(1)K(1)K(1)8 8M(2)M(2)J(2)J(2)K(2)K(2)7 7M(3)M(3)J(3)J(3)K(3)K(3)1010M(4)M(4)J(4)J(4)K(4)K(4)4 4M(5)M(5)J(5)J(5)K(5)K(5)1313N(1)N(1)K(1)K(1) -1-1 L(1)L(1)N(2)N(2)K(2)K(2)3 3L(2)L(2)N(3)N(3)K

16、(3)K(3) -6-6 L(3)L(3)N(4)N(4)K(4)K(4)9 9L(4)L(4)等價語句:等價語句:EQUIVALENCE (EQUIVALENCE (變量名表變量名表1),(1),(變量名表變量名表2), 2), 其中:其中: 1 1等價語句是說明語句,應(yīng)出現(xiàn)在執(zhí)行語句之前;等價語句是說明語句,應(yīng)出現(xiàn)在執(zhí)行語句之前; 2 2每一個每一個 ( (變量名表變量名表) ),稱為一個等價片;,稱為一個等價片; 3 3等價片中的名字稱為等價元。等價元可以是簡單等價片中的名字稱為等價元。等價元可以是簡單 變量或下標(biāo)為常數(shù)的下標(biāo)變量。變量或下標(biāo)為常數(shù)的下標(biāo)變量。例:例:INTEGER I,

17、 J, K(3)INTEGER I, J, K(3) COMPLEX X COMPLEX X REAL A(3,3) REAL A(3,3) EQUIVALENCE (X EQUIVALENCE (X,A(2,3) ,(I,J,A(1,2),K(2)A(2,3) ,(I,J,A(1,2),K(2)等價片等價片4 4等價片中的每一個等價元都被分配到同一個存儲單等價片中的每一個等價元都被分配到同一個存儲單 元,只要某一個等價元賦予某值,其它的等價元元,只要某一個等價元賦予某值,其它的等價元 也就同時具有相同的值。也就同時具有相同的值。 如有賦值:如有賦值:I=2 I=2 那么那么 J,A(1,2)

18、J,A(1,2)值也為值也為2 2。 (留意:這種效果不是數(shù)學(xué)上的等值,而是由于(留意:這種效果不是數(shù)學(xué)上的等值,而是由于 共享一個存儲單元而得到的方便。共享一個存儲單元而得到的方便。) ) INTEGER I, J, K(3) INTEGER I, J, K(3) COMPLEX X COMPLEX X REAL A(3,3) REAL A(3,3) EQUIVALENCE (X,A(2,3),(I,J,A(1,2),K(2) EQUIVALENCE (X,A(2,3),(I,J,A(1,2),K(2)5).5).不同等價片中若有相同名字不同等價片中若有相同名字( (包括數(shù)組名包括數(shù)組名)

19、),那么,那么 稱為等價相關(guān),應(yīng)將其合并,讓更多等價元共稱為等價相關(guān),應(yīng)將其合并,讓更多等價元共 享存儲單元。享存儲單元。( (如如A)A)6).6).若兩個數(shù)組的某一個元素等價,則數(shù)組的其他若兩個數(shù)組的某一個元素等價,則數(shù)組的其他 元素也產(chǎn)生等價關(guān)系如元素也產(chǎn)生等價關(guān)系如A, KA, K) INTEGER I, J, K(3) COMPLEX X REAL A(3,3) EQUIVALENCE (X,A(2,3) ) , (I, J, A(1,2), K(2) )例:例:INTEGER I,J,K(3)INTEGER I,J,K(3) COMPLEX X COMPLEX X REAL A(3

20、,3) REAL A(3,3) EQUIVALENCE (X,A(2,3),(I,J,A(1,2),K(2) EQUIVALENCE (X,A(2,3),(I,J,A(1,2),K(2)XA(1,1)A(2,1) A(3,1) A(1,2)A(2,2)A(3,2)A(1,3)A(2,3) A(3,3)IJK(1)K(2)K(3)7).7).占用單元數(shù)不同的名字等價時,占用單元少的占用單元數(shù)不同的名字等價時,占用單元少的 名字和占用單元多的名字的前半部分占用同一名字和占用單元多的名字的前半部分占用同一 單元;單元;(X,A) (X,A) 存儲區(qū)存儲區(qū)公共語句與等價語句同時出現(xiàn):公共語句與等價語句

21、同時出現(xiàn): . .若一個名字與公共區(qū)中元素等價,則該名字分若一個名字與公共區(qū)中元素等價,則該名字分 配到公共區(qū);配到公共區(qū); . .等價語句不能改變公共語句確定好的次序和位等價語句不能改變公共語句確定好的次序和位 置,但可以用置,但可以用EQUIVALENCEEQUIVALENCE語句來擴大公共區(qū);語句來擴大公共區(qū);A(1)A(1) A(2)A(2) A(3)A(3) A(4)A(4)C CB(1)B(1) B(2)B(2) B(3)B(3) B(4)B(4)DIMENSION A(4),B(4)DIMENSION A(4),B(4)COMMON A,CCOMMON A,CEQUIVALENC

22、E(A(3),B(1)EQUIVALENCE(A(3),B(1)公共語句與等價語句同時出現(xiàn):公共語句與等價語句同時出現(xiàn): . .等價語句不能改變公共語句確定好的次序和位等價語句不能改變公共語句確定好的次序和位 置,等價元素位置不得小于公共區(qū)起始位置置,等價元素位置不得小于公共區(qū)起始位置 (否則稱為(否則稱為“冒頭冒頭” ” )A(1)A(1) A(2)A(2) A(3)A(3) A(4)A(4)C CB(1)B(1) B(2)B(2) B(3)B(3) B(4)B(4)DIMENSION A(4),B(4)DIMENSION A(4),B(4)COMMON A,CCOMMON A,CEQUIV

23、ALENCE (A(1),B(2)EQUIVALENCE (A(1),B(2)B B是由等價語句帶進(jìn)來的,但是由等價語句帶進(jìn)來的,但B B的元素向前越過了公用區(qū)的元素向前越過了公用區(qū)的第一個存儲單元的第一個存儲單元 “ “冒頭冒頭”PROGRAM MAIN COMMON /A1/X,Y,Z COMMON S1,S2 EQUIVALENCE(X,X3) S1=2.0 S2=3.0 CALL S(X1,X2) PRINT *,X,Y,Z PRINT *, X1,X2,X3 PRINT *,S1,S2 ENDSUBROUTINE S(Y1,Y2) COMMON /A1/A,B,C/Q1 A=A+3.

24、0 B=B+4.0 C=C+5.0 Y1=A+B Y2=C-A Q1=Q1+2.0 ENDBLOCK DATA COMMON /A1/P,Q,R DATA P,Q,R/3*1.0/ END X Y Z X3 A B C P Q R S1 S2 Q1 X1 X2 Y1 Y2 1.0 1.0 1.02.0 3.0 4.0 5.0 6.09.0 2.0 4.0輸出:輸出:4.0 5.0 6.0 9.0 2.0 4.0 4.0 3.0A1區(qū)區(qū)無名區(qū)無名區(qū)局部區(qū)局部區(qū)例:例:SUBROUTINE SS(I)SUBROUTINE SS(I); INTEGER K, T, Q, S INTEGER K, T

25、, Q, S ; REAL B(5), C(6), M REAL B(5), C(6), M COMMON / Y, Z, D COMMON / Y, Z, D COMPLEX D(2) COMPLEX D(2) EQUIVALENCE (Z,C(1),(C(3),S),(Q,B(2),(T,B(4) EQUIVALENCE (Z,C(1),(C(3),S),(Q,B(2),(T,B(4)無無名名公公共共區(qū)區(qū)0 0Y Y1 1Z ZC(1)C(1)2 2D(1)D(1)C(2)C(2)3 3S SC(3)C(3)4 4D(2)D(2)C(4)C(4)局局部部數(shù)數(shù)據(jù)據(jù)區(qū)區(qū)0 0I I1 1K K

26、2 2B(1)B(1)3 3Q QB(2)B(2)4 4B(3)B(3)等價片等價片5 5T TB(4)B(4)6 6B(5)B(5)7 7M等價片分配后等價片分配后8.3.3 公共語句的處理公共語句的處理1).1).新增公共塊表新增公共塊表(COMLIST)(COMLIST),主要欄目項如下:,主要欄目項如下:2).2).符號表中增加一個欄目項符號表中增加一個欄目項CMPCMP, 將同一公共區(qū)中的元素按出現(xiàn)將同一公共區(qū)中的元素按出現(xiàn) 順序拉成一條鏈順序拉成一條鏈( (指向同一條公指向同一條公 共鏈的下一個元素共鏈的下一個元素) ); COMLISTCOMLISTNAMENAMELENGTHL

27、ENGTHFTFTLTLT公公共塊共塊名名長度長度鏈?zhǔn)自诜柋礞準(zhǔn)自诜柋碇械娜肟诘刂分械娜肟诘刂锋溛苍诜柋礞溛苍诜柋碇械娜肟诘刂分械娜肟诘刂?符號表符號表NameName CMPCMPCOMMON X, YCOMMON X, YCOMMON /B1/A, B, C / / D, E, F(100)COMMON /B1/A, B, C / / D, E, F(100) 符號表符號表NameNameDADACMPCMP1 1X X2 22 2Y Y6 63 3A AB1B14 44 4B BB1B15 55 5C CB1B10 06 6D D7 77 7E E8 88 8F F0 0 COM

28、LIST COMLISTNameName LengthLengthFTFTLTLT1 18 8B1B13 35 5無名公共區(qū):無名公共區(qū): XYDEFXYDEFB1B1區(qū):區(qū): ABCABCLengthLength欄:地址分配時確定欄:地址分配時確定8.3.4 等價語句的處理等價語句的處理1). 主要工作:主要工作: 找出存在等價關(guān)系的等價元,將它們構(gòu)成等價環(huán);找出存在等價關(guān)系的等價元,將它們構(gòu)成等價環(huán); 指出各等價元的首地址關(guān)系,以便進(jìn)行內(nèi)存分配。指出各等價元的首地址關(guān)系,以便進(jìn)行內(nèi)存分配。 EQUIVALENCE (X,Y), (I,J,K(2) EQUIVALENCE (X,Y), (I

29、,J,K(2)X XY YP PI IJ JP PK K等價元的首地址關(guān)系等價元的首地址關(guān)系 X X首地址首地址=Y=Y首地址首地址, , I I首地址首地址=J=J首地址首地址=K=K的首地址的首地址+1+12).2).實現(xiàn)方式:在符號表中增設(shè)兩欄:實現(xiàn)方式:在符號表中增設(shè)兩欄:EQEQ和和OFFSETOFFSET。 EQEQ:等價環(huán)形鏈,指向下一個等價元的入口;:等價環(huán)形鏈,指向下一個等價元的入口; 若為若為nullnull,則說明該名字不是等價元;,則說明該名字不是等價元; (若等價環(huán)中只有一個等價元,則指向自身)(若等價環(huán)中只有一個等價元,則指向自身) OFFSETOFFSET:相對位

30、移量,用來指出各等價元存儲:相對位移量,用來指出各等價元存儲 首地址之間的地址相對關(guān)系。首地址之間的地址相對關(guān)系。INTEGER I,J,K(3)INTEGER I,J,K(3)REAL X,YREAL X,YEQUIVALENCE (X,Y),(I,J,K(2)EQUIVALENCE (X,Y),(I,J,K(2)NAMENAME OFFSETOFFSETEQEQ1 1I I0 03 32 2J J0 01 13 3K K-1-12 24 4X X0 05 55 5Y Y0 04 4X XY YP PI IJ JP PK K形式化形式化的歸并的歸并算法算法P251P251公用區(qū)地址分配算法公

31、用區(qū)地址分配算法 P252P252局部區(qū)等價環(huán)分配算法局部區(qū)等價環(huán)分配算法 P253 P253局部區(qū)地址分配算法局部區(qū)地址分配算法無無名名公公共共區(qū)區(qū)0 0Y Y1 1Z ZC(1)C(1)2 2D(1)D(1)C(2)C(2)3 3C(3)C(3)4 4D(2)D(2)C(4)C(4)5 5C(5)C(5)6 6C(6)C(6)符符號號表表Name Size DA Addr1 1I1 10 00 02 2K1 10 01 13 3T1 10 05 54 4Q1 10 03 35 5B5 50 02 26 6C6 61281281 17 7Y1 11281280 08 8Z1 11281281

32、 19 9D4 41281282 21010M1 10 07 7Subroutine SS(I)Integer K, T, QReal B(5), C(6)Common / Y, Z, DComplex D(2)Real MEquivalence (Z, C(1) , (Q, B(2), (T, B(4) COMLISTName Length FTLT無名無名779局局部部數(shù)數(shù)據(jù)據(jù)區(qū)區(qū)0 0I I1 1K K2 2B(1)B(1)3 3Q QB(2)B(2)4 4B(3)B(3) 等價片等價片5 5T TB(4)B(4) 6 6B(5)B(5)7 7 M符符號號表表NameSize DA Ad

33、dr1 1I1 10 00 02 2K1 10 01 13 3T1 10 05 54 4Q1 10 03 35 5B5 50 02 26 6C6 61281281 17 7Y1 11281280 08 8Z1 11281281 19 9D4 41281282 21010M1 10 07 7Subroutine SS(I)Integer K, T, QReal B(5), C(6)Common / Y, Z, DComplex D(2) Real MEquiv (Z, C(1) , (Q,B(2), (T,B(4) 8.3.6 臨時變量的地址分配臨時變量的地址分配 1 1、臨時變量:編譯程序引入

34、,存放中間結(jié)果。、臨時變量:編譯程序引入,存放中間結(jié)果。 2 2、臨時變量的作用域:、臨時變量的作用域: 定值定值( (賦值賦值)=)=最后一次被引用。最后一次被引用。 3 3、地址分配原則:、地址分配原則: 若兩個臨時變量的作用域不相交,則它們可若兩個臨時變量的作用域不相交,則它們可 分配在同一單元中。分配在同一單元中。 臨時變量名均分配在局部數(shù)據(jù)區(qū)。臨時變量名均分配在局部數(shù)據(jù)區(qū)。單元單元已分配給已分配給標(biāo)記的作用域標(biāo)記的作用域I1T1,1 , T1,2 , , T1,m1S1,1 , S1,2 , , S1,m1I2T2,1 , T2,2 , , T2,m2 ,TS2,1 , S2,2 , , S2,m2 ,SIkTk,1 , Tk,2 , , Tk,mkSk,1 , Sk,2 , , Sk,mkIk+1TS1) 1) 對臨時變量對臨時變量T T,求出,求出T T的作用域的作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論