2012-03-27 4 views
4

У Википедии есть определение для control flow graph. Я также слышал терминологию, которая ссылалась на «call (flow?) Graph», но не может найти соответствующие ресурсы. Какова взаимосвязь между ними?Практические различия между графиком потока управления и графиком вызова (потока?)?

+1

Я не думаю, что «график потока вызовов» является стандартным термином. Где ты наткнулся на это? –

+0

Я думаю, что OP означало «call graph». – Jus12

ответ

18

Википедия определяет call graph как представление взаимосвязи между подпрограммами в программе. В графе вызовов, ребро между двумя узлами и fg:

 f --> g 

представляет тот факт, что подпрограмма вызывает подпрограмму fg. График вызовов дает межпроцессный вид программы.

График потока управления (CFG) предоставляет более тонкие «детали» в структуре программы в целом и, в частности, подпрограмм. Например, CFG подпрограмм f будет четко указать все пути, которые вызываются с помощью условного перехода:

      /branch1 \ 
    begin --> condition -->    --> codeblock --> g --> end 
          \ branch2/

Этого вида CFG используется для построения внутри процедурного вида подпрограммы.

+1

+1 от меня .. BTW Я бы не использовал определение в Википедии как авторитетное. – Jus12