Haskell全程序静态分析的实现技巧

Haskell全程序静态分析的实现技巧,haskell,static-analysis,template-haskell,ghc-api,Haskell,Static Analysis,Template Haskell,Ghc Api,作为基于属性测试研究项目的一部分,我需要对Haskell程序进行静态全程序分析。我正在寻找关于如何实施Haskell项目的整个项目分析的建议,希望不用自己构建很多基础设施 我查看了TemplateHaskell,它具有许多我需要的功能,但缺少一个关键特性:在GHC中实现的TemplateHaskell中,有。(相关问题:) 我怀疑可能有某种方法可以使用GHC API对Haskell程序进行整个程序分析,但我无法从GHC API文档中轻松确定如何进行分析 特别是,给定一个函数调用站点,我需要能够查

作为基于属性测试研究项目的一部分,我需要对Haskell程序进行静态全程序分析。我正在寻找关于如何实施Haskell项目的整个项目分析的建议,希望不用自己构建很多基础设施

我查看了TemplateHaskell,它具有许多我需要的功能,但缺少一个关键特性:在GHC中实现的TemplateHaskell中,有。(相关问题:)

我怀疑可能有某种方法可以使用GHC API对Haskell程序进行整个程序分析,但我无法从GHC API文档中轻松确定如何进行分析

特别是,给定一个函数调用站点,我需要能够查找相应的函数定义。我对基于模板Haskell或GHC API的解决方案特别感兴趣


有没有办法在不自己构建所有基础设施的情况下对Haskell程序进行整个程序分析?

解析源代码并查找函数定义是一种选择吗?如果您想自己解析代码,我认为Haskell src exts这样的库会有所帮助。user2407038,我会考虑解析源代码的一个选项。尽管这样的选项可能会导致与使用cabal构建库时不同的构建配置,例如,就像Bheklillr所说的,看看haskell src exts,如果您想使用TH,也可以看看haskell src meta,它使用haskell src exts进行解析,并将AST转换为TH中使用的数据类型。恐怕我不知道不同的构建配置是什么意思。