Haskell(或其他高阶语言)中的动态调用图

时间:2014-07-12 12:43:47

标签: haskell functional-programming call-graph

关于动态调用图的问题有两个:

首先,我感兴趣的是,是否有任何工作能够为高阶函数语言提供调用图的定义?

例如,考虑Haskell中的以下示例程序:

f a b = a + b
g = f 1
h x = if x == "y" then g 3 else f 4 5
main = do 
  s <- getLine
  print (h s)

g功能是h的继承者吗?这取决于h函数的x参数:因此我们正在寻找动态调用图。

假设x等于“y”。 f函数是g函数,h函数还是两者的后继函数?或者我们不应该将f函数视为一个整体吗?

显然,这些问题需要动态调用图的(正式)定义。 Sereni在他们的论文中使用的定义很有帮助,但他们关注的是静态而不是动态的调用图。

其次,是否有工具为Haskell构建动态调用图?我知道SourceGraph。据我所知,这个工具构建了一个静态调用图,这也很有趣,但不是我想要的。

0 个答案:

没有答案