Опубликован: 23.07.2006 | Доступ: свободный | Студентов: 2213 / 889 | Оценка: 4.28 / 4.17 | Длительность: 21:37:00
Специальности: Системный архитектор
Лекция 13:

Анализ потоков данных

Пример: живые переменные (1)


В качестве примера работы алгоритма для обратной задачи рассмотрим задачу о живых переменных для той же программы. Граф в тех же обозначениях и множество потоковых функций показаны на слайде.

Пример: живые переменные (2)

Последовательность работы алгоритма приведена на иллюстрации. Как и в предыдущем случае, последовательность обработки вершин обозначена жирными стрелками.

Заключение

В заключение опишем еще раз последовательность шагов, которую надо осуществить для решения задачи анализа потоков данных итеративным способом.

Прежде всего, необходимо формализовать множество фактов и решение задачи анализа потоков данных, придумав подходящую полурешетку.

Затем, необходимо описать преобразование множества потоковых фактов при прохождении через вершину графа с помощью монотонных, а еще лучше дистрибутивных функций.

Наконец, применить итеративный алгоритмпрямой или обратной модификации) для получения неподвижной точки.

Литература к лекции

  • А. Ахо, Р. Сети, Дж. Ульман "Компиляторы: принципы, технологии и инструменты", М.: "Вильямс", 2001. 768 с.
  • Steven S. Muchnik "Advanced Compiler Design And Implementation", Morgan Kaufmann Publishers, July 1997. 880 pp.
  • В.Н. Касьянов "Оптимизирующие преобразования программ", М., "Наука", 1988. 336 с.