Граф потоку керування (англ. control flow graph, CFG) — в теорії компіляції — множина всіх можливих шляхів виконання програми, поданих у вигляді графа.
У графі потоку керування кожен вузол (вершина) графа відповідає базовому блоку — лінійній ділянці коду, що не містить ні операцій передачі керування, ні точок, на які керування передається з інших частин програми. Є лише 2 винятки:
- точка, на яку виконується перехід, є першою інструкцією в базовому блоці, і
- базовий блок завершується інструкцією переходу.
Спрямовані дуги використовуються в графі для подання інструкцій переходу. Також у більшості реалізацій додано два спеціалізованих блоки: вхідний блок, через який керування входить у граф, і вихідний блок, який завершує всі шляхи в даному графі.
Структура CFG вкрай важлива для багатьох оптимізацій компіляторів і для утиліт статичного аналізу коду.
За допомогою графа керування можна визначати недосяжні фрагменти коду, деякі види зациклення програм, можливість перегрупування операторів для використання можливостей процесора з оптимізації кешування пам'яті; також граф потоку керування може використовуватися при контролі коректності оптимізуючих перетворень і при процедурному (intraprocedural) аналізі. Ще одне застосування графа потоку керування — етап вставляння функцій при побудові статичних форм з одноразовим присвоєнням (SSA — forms).
Примітки
- Анализ потока управления в открытой распараллеливающей системе [ 1 лютого 2014 у Wayback Machine.](рос.)
Див. також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Graf potoku keruvannya angl control flow graph CFG v teoriyi kompilyaciyi mnozhina vsih mozhlivih shlyahiv vikonannya programi podanih u viglyadi grafa Prosti grafi potoku U grafi potoku keruvannya kozhen vuzol vershina grafa vidpovidaye bazovomu bloku linijnij dilyanci kodu sho ne mistit ni operacij peredachi keruvannya ni tochok na yaki keruvannya peredayetsya z inshih chastin programi Ye lishe 2 vinyatki tochka na yaku vikonuyetsya perehid ye pershoyu instrukciyeyu v bazovomu bloci i bazovij blok zavershuyetsya instrukciyeyu perehodu Spryamovani dugi vikoristovuyutsya v grafi dlya podannya instrukcij perehodu Takozh u bilshosti realizacij dodano dva specializovanih bloki vhidnij blok cherez yakij keruvannya vhodit u graf i vihidnij blok yakij zavershuye vsi shlyahi v danomu grafi Struktura CFG vkraj vazhliva dlya bagatoh optimizacij kompilyatoriv i dlya utilit statichnogo analizu kodu Za dopomogoyu grafa keruvannya mozhna viznachati nedosyazhni fragmenti kodu deyaki vidi zaciklennya program mozhlivist peregrupuvannya operatoriv dlya vikoristannya mozhlivostej procesora z optimizaciyi keshuvannya pam yati takozh graf potoku keruvannya mozhe vikoristovuvatisya pri kontroli korektnosti optimizuyuchih peretvoren i pri procedurnomu intraprocedural analizi She odne zastosuvannya grafa potoku keruvannya etap vstavlyannya funkcij pri pobudovi statichnih form z odnorazovim prisvoyennyam SSA forms PrimitkiAnaliz potoka upravleniya v otkrytoj rasparallelivayushej sisteme 1 lyutogo 2014 u Wayback Machine ros Div takozhOriyentovanij graf Slovnik terminiv teoriyi grafivCya stattya ye zagotovkoyu Vi mozhete dopomogti proyektu dorobivshi yiyi Ce povidomlennya varto zaminiti tochnishim