У Википедии есть определение для control flow graph. Я также слышал терминологию, которая ссылалась на «call (flow?) Graph», но не может найти соответствующие ресурсы. Какова взаимосвязь между ними?Практические различия между графиком потока управления и графиком вызова (потока?)?
ответ
Википедия определяет call graph как представление взаимосвязи между подпрограммами в программе. В графе вызовов, ребро между двумя узлами и f
g
:
f --> g
представляет тот факт, что подпрограмма вызывает подпрограмму f
g
. График вызовов дает межпроцессный вид программы.
График потока управления (CFG) предоставляет более тонкие «детали» в структуре программы в целом и, в частности, подпрограмм. Например, CFG подпрограмм f
будет четко указать все пути, которые вызываются с помощью условного перехода:
/branch1 \
begin --> condition --> --> codeblock --> g --> end
\ branch2/
Этого вида CFG используется для построения внутри процедурного вида подпрограммы.
+1 от меня .. BTW Я бы не использовал определение в Википедии как авторитетное. – Jus12
Я не думаю, что «график потока вызовов» является стандартным термином. Где ты наткнулся на это? –
Я думаю, что OP означало «call graph». – Jus12