Граф процедур: различия между версиями
KEV (обсуждение | вклад) Нет описания правки |
KEV (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
'''Граф процедур''' (''[[Call graph]]'') | '''Граф процедур''' (''[[Call graph]]'') — [[орграф]], [[вершина|вершины]] которого суть процедуры программы, а [[дуга|дуги]] | ||
отражают возможность прямого обращения одной процедуры к другой. В ''' | отражают возможность прямого обращения одной процедуры к другой. В '''графе процедур''' предполагается, что все исполнения операторов вызова, обращающихся к одной и той же процедуре, приводят к одним и тем же цепочкам вложенных вызовов процедур. | ||
[[Файл:Call graph.png|750px]] | [[Файл:Call graph.png|750px]] | ||
Для более точного кодирования межпроцедурных связей используется ''[[граф вызовов]]'', вершинами которого являются операторы вызовов процедур, а дуги отражают непосредственную вложенность вызовов. В этом графе склеены, однако, выполнения так называемых | Для более точного кодирования межпроцедурных связей используется ''[[граф вызовов]]'', вершинами которого являются операторы вызовов процедур, а дуги отражают непосредственную вложенность вызовов. В этом графе склеены, однако, выполнения так называемых | ||
особых вызовов | особых вызовов — таких, при разных исполнениях которых могут вызываться разные процедуры. | ||
Выполнения особых вызовов расклеиваются в ''[[граф зацепленности|графе зацепленности]]'', вершинами которого являются пары оператор вызова | Выполнения особых вызовов расклеиваются в ''[[граф зацепленности|графе зацепленности]]'', вершинами которого являются пары оператор вызова — вызываемая процедура, а дуги отражают непосредственную вложенность соответствующих пар. | ||
==Литература== | ==Литература== | ||
* Касьянов В.Н. Оптимизирующие преобразования программ. — М.: Наука, 1988. |
Текущая версия от 16:49, 1 февраля 2011
Граф процедур (Call graph) — орграф, вершины которого суть процедуры программы, а дуги отражают возможность прямого обращения одной процедуры к другой. В графе процедур предполагается, что все исполнения операторов вызова, обращающихся к одной и той же процедуре, приводят к одним и тем же цепочкам вложенных вызовов процедур.
Для более точного кодирования межпроцедурных связей используется граф вызовов, вершинами которого являются операторы вызовов процедур, а дуги отражают непосредственную вложенность вызовов. В этом графе склеены, однако, выполнения так называемых особых вызовов — таких, при разных исполнениях которых могут вызываться разные процедуры.
Выполнения особых вызовов расклеиваются в графе зацепленности, вершинами которого являются пары оператор вызова — вызываемая процедура, а дуги отражают непосредственную вложенность соответствующих пар.
Литература
- Касьянов В.Н. Оптимизирующие преобразования программ. — М.: Наука, 1988.