Громадянам України

Що таке ланцюжок UD у дизайні компілятора?

У інформатиці існує ланцюжок визначення використання (або ланцюг UD). структура даних, яка складається з використання U, змінної та всіх визначень D цієї змінної, які можуть досягати цього використання без будь-яких інших втручаючих визначень. Ланцюжок UD зазвичай означає присвоєння деякого значення змінній.

Аналіз потоку даних є техніка для збору інформації про можливий набір значень, обчислених у різних точках комп’ютерної програми. Граф потоку керування (CFG) програми використовується для визначення тих частин програми, до яких може поширюватися певне значення, присвоєне змінній.

Ланцюг UD є список усіх визначень, які охоплюють використання певної змінної в програмі. Використовуючи ланцюги UD, програмісти можуть швидко й ефективно знайти походження несправної змінної.

У теорії компілятора визначення досягнення для даної інструкції є попередня інструкція, цільова змінна якої може досягати (призначатися) даної без проміжного призначення. Наприклад, у такому коді: d1 : y := 3 d2 : x := y. d1 є визначенням досягнення для d2.

Існує два типи DFD — логічний і фізичний. Логічні діаграми відображають теоретичний процес переміщення інформації через систему, наприклад, звідки надходять дані, куди вони йдуть, як змінюються та куди потрапляють. Фізичні діаграми показують вам практичний процес переміщення інформації через систему.

Ребра керування описують послідовність інструкцій та/або операторів. Ребра даних описують потік даних у програмі. Усі ребра керування разом утворюють граф, який називається графом потоку керування (CFG). Усі ребра даних разом утворюють граф, який називається графіком потоку даних (DFG).