天天看點

【編譯原理】作業十三編譯原理 第13次作業

編譯原理 第13次作業

151220129 計科 吳政億 [email protected]

第一題 8.6.5

t1  =   b   *   c   
    LD  R1, b                   
    LD  R2, c
    MUL R1, R1, R2

t2  =   a
    LD  R2, a

t3  =   t1  +   t2
    ADD R1, R1, R2

x   =   t3
    ST  x,  R1              
           
R1 R2 a b c x t1 t2 t3
a b c x
t1 c a b c,R2 x R1
t1 a,t2 a,R2 b c x R1 R2
t3 a,t2 a,R2 b c x R2 R1
t3 a,t2 a,R2 n c x,R1 R2 R1

第二題 9.1.1

  1. 基本塊 B3,B4 B 3 , B 4 是一個循環,基本塊 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 是另一個循環。
    • (3) c = 1 + b
    • (4) d = c - 1
    • (6) d = 1 + b
    • (8) b = 1 + b
    • (9) e = c - 1
    • 對于循環 B3,B4 B 3 , B 4 來說, a+b a + b 是全局公共子表達式
    • 對于循環 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 來說,(6)(8)的 a+b a + b ,(9)的 c−a c − a 是全局公共子表達式
    • 對于循環 B3,B4 B 3 , B 4 來說, a+b a + b 是全部循環不變計算
    • 對于循環 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 來說,沒有全部循環不變計算

第三題 9.1.4

dp = 
    i  = 
    t1 = 
L:  t2 = A[t1]
    t3 = B[t1]
    t4 = t2 * t3
    dp = dp + t4
    i  = i  + 
    t1 = t1 + 
    if i<n  goto  L