活躍變數分析

2021-06-28 10:39:30 字數 903 閱讀 7508

1、定義

對於變數x和程式點p,判斷x在點p上的值是否會在流圖中的某條從點p出發的路徑中使用。如果是,就說x在p上活躍;否則就說x在p上是死的。

2、用途

重要用途之一是為基本塊進行儲存器分配。乙個值被計算儲存到乙個暫存器中後,很有可能在基本塊中被使用。如果它在基本塊中是死的,就不必在結尾處儲存這個值。另外在所有暫存器被占用時,如果還需申請暫存器的話,應該考慮使用乙個儲存了已死亡的值的暫存器,因為該值無需儲存到記憶體。

3、分析

活躍變數分析是按照程式控制流的反方向進行計算的,若直接以in[b]和out[b]的方式定義資料流方程,其中in[b]和out[b]分別表示緊靠基本塊b之前和緊隨b之後的點上的活躍變數集合,該集合可以通過以下方法獲得:首先定義各個語句的傳遞函式,然後再把他們組合起來得到乙個基本塊的傳遞函式。

給出以下定義:

1)defb是指如下變數的集合,這些變數在b中的定值(即被明確的賦值)先於任何對他們的使用。

2)useb是指如下變數的集合,它們的值可能在b中先於任何對他們的定值被使用。

將def和use與未知的in和out的值聯絡起來的方程定義如下:

且對於所有不等於exit的基本塊來說:

4、計算活躍變數的迭代演算法

輸入:乙個流圖,其中每個基本塊b的use和def已經計算出來

輸出:該流圖的各個基本塊b的入口和出口處的活躍變數集合,即in[b]和out[b]

演算法:in[exit]={};

for(除exit之外的每個基塊b) in[b]={};

while(某個in值發生了改變)

for(除了exit之外的每個基本塊b)

python 典型變數分析

1.典型相關分析的基本思想是首先在每組變數中找出變數的線性組合,使其具有最大相關性,然後再在每組變數中找出第二對線性組合,使其分別與第一對線性組合不相關,而第二對本身具有最大的相關性,如此繼續下去,直到兩組變數之間的相關性被提取完畢為止.有了這樣線性組合的最大相關,則討論兩組變數之間的相關,就轉化為...

Seaborn 單變數分析(三)

matplotlib inline import numpy as np import pandas as pd from scipy import stats,integrate import matplotlib.pyplot as plt import seaborn as sns sns.s...

Seaborn實現單變數分析

import numpy as np import pandas as pd from scipy import stats,integrate import matplotlib.pyplot as plt import seaborn as sns 繪製直方圖 sns.set color cod...