Граф процедур: различия между версиями

Материал из WEGA
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
'''Граф процедур''' (''[[Call graph]]'') - [[орграф]], [[вершина|вершины]] которого суть процедуры программы, а [[дуга|дуги]]
'''Граф процедур''' (''[[Call graph]]'') - [[орграф]], [[вершина|вершины]] которого суть процедуры программы, а [[дуга|дуги]]
отражают возможность прямого обращения  одной процедуры к другой. В '''Г.п.''' предполагается, что все исполнения операторов вызова, обращающихся к одной и той же процедуре, приводят к одним и тем же цепочкам вложенных вызовов процедур.
отражают возможность прямого обращения  одной процедуры к другой. В '''графе процедур''' предполагается, что все исполнения операторов вызова, обращающихся к одной и той же процедуре, приводят к одним и тем же цепочкам вложенных вызовов процедур.


[[Файл:Call graph.png|750px]]
[[Файл:Call graph.png|750px]]

Версия от 13:24, 9 июня 2010

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

Call graph.png

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


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

Литература

[Касьянов/88]