Русская Википедия:DU-цепь

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

DU-цепь (Шаблон:Lang-en — цепь «определение — использование») — структура данных, используемая в Шаблон:Нп3 для нахождения мест использования определяемой переменной или нахождения всех мест определений значений переменных, входящих в выражениеШаблон:Sfn. Эта структура ставит в соответствие каждому определению переменной список операторов, достижимых из определения и содержащих переменную. Аналогично, UD-цепь (Шаблон:Lang-en) содержит для каждого случая использования переменной места её определения, из которых место использования достижимоШаблон:Sfn.

UD- и DU-цепочки используются в статическом анализе кода, известном как анализ потока данных. Наличие UD- и DU-цепочек для программы является необходимым условием для множества оптимизаций компилятора, среди которых распространение констант и удаление общих подвыражений. Результат анализа потока данных часто можно представить как наложение цепочек на граф потока управления анализируемого кода программыШаблон:Sfn.

Одним из улучшений идеи UD/DU-цепочек является форма статического одиночного присваивания (Шаблон:Lang-en). SSA-форма является промежуточным представлением, при котором каждая переменная имеет только одно определение в программе. Следует заметить, что (статическое) определение может находиться в цикле, выполняемом много раз, поэтому SSA не следует путать с единичным присваиваниемШаблон:Sfn.

Примечания

Шаблон:Примечания

Литература

Шаблон:Rq