Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 02. Построение множеств Input и Output

Лекция 02. Построение множеств Input и Output (Лекции (2015)), страница 2

PDF-файл Лекция 02. Построение множеств Input и Output (Лекции (2015)), страница 2, который располагается в категории "лекции и семинары" в предмете "конструирование компиляторов" изседьмого семестра. Лекция 02. Построение множеств Input и Output (Лекции (2015)), страница 2 - СтудИзба 2019-09-18 СтудИзба

Описание файла

Файл "Лекция 02. Построение множеств Input и Output" внутри архива находится в папке "Лекции (2015)". PDF-файл из архива "Лекции (2015)", который расположен в категории "лекции и семинары". Всё это находится в предмете "конструирование компиляторов" из седьмого семестра, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

ОпределениеЦель анализа – для определения переменной x в точке p программывыяснить, будет ли указанное значение x использоваться вдолькакого-нибудь пути, начинающемся в точке p.Если да – переменная x жива (активна) в точке p,если нет – переменная x мертва (неактивна) в точке p.372.4 Живые переменные2.4.3 Уравнения потока данныхInLV[B] – множество переменных, живых на входе в блок BOutLV [B] – множество переменных, живых на выходе из блока B .defB – множество переменных, определяемых в блоке В до ихиспользования в этом блоке(любая переменная из defB мертва на входе в блок В)useB – множество переменных, используемых в блоке В до ихопределения в этом блоке(любая переменная из useB жива на входе в блок В)382.4 Живые переменные2.4.3 Уравнения потока данных Пример(1)в блоке B2 переменные i и j используются до ихпереопределения, следовательно,useB2  {i, B1 , i, B4 ,  j, B1 } (1100001)(2)EntryB1в блоке B2 определяются новые значения переменныхi и j, так чтоdef B2  {i, B2 ,  j, B2 } (0001100)B2B3B1i  –, m, 1j  na  u1B2i  +, i, 1j  -, j, 1 aB3a  u2B4i  u3B4Exit392.4 Живые переменные2.4.3 Уравнения потока данныхУравнения, связывающие def и use с неизвестными In и Out,определяются следующим образом:In[ B]  useB  (Out[ B]  def B )Out[ B]  In[S ]SSucc( B )К ним добавляется граничное условиеIn [Exit] = 402.4 Живые переменные2.4.4 Итеративный алгоритм анализа живых переменных Алгоритм «Живые переменные»Вход: граф потока, в котором для каждого блока В вычисленымножества def и useВыход: множества переменных, живых на входе (In[В]) и выходе(Out[В]) каждого базового блока В графа потока.Метод: выполнить следующую программу:411) In[Exit] = ;2) change = true;3) /*установка начального значения множества In*/4)for (каждый базовый блок B, отличный от Exit)In[B] = ;5) /* основной цикл*/6)while (change) do {7)change = false;8)for (каждый базовый блок B, отличный от Exit) {9)/* вычисление новых значений множествIn[B],Out[B] */In[ B]   In[ S ]10)SSucc( B )InNew[ B]  useB  (Out[ B]  def B )11)12)13)14)15)16)17)if (InNew[B] In[B] ){In[B] = InNew[B] ;change = true;}}}422.4 Живые переменные2.4.5 МножестваOutput для базовых блоковМножество Output[B] для базового блока B – это множество OutLV[B],которое строится при исследовании живых переменных43.

Свежие статьи
Популярно сейчас