Разработка компиляторов

       

Разметки и потоковые функции


Опишем теперь общий подход к решению задачи анализа потоков данных более формально.

Зафиксируем некоторое частично упорядоченное множество "фактов" (утверждений о свойствах программы) X. Отображение ?, сопоставляющее вершинам графа управления элементы X, назовем разметкой. Поточечное распространение отношений равенства и порядка вводит аналогичные отношения на множестве разметок.

Функцией перехода назовем отображение F, которое переводит одну разметку в другую. Разметку ?s назовем неподвижной точкой отображения F тогда и только тогда, когда F(?s)=?s.

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



Содержание раздела