我很少看到函数式编程语言的静态分析器,比如 Racket/Scheme,我什至怀疑是否有。我想为功能语言编写一个静态分析器,比如 Scheme/Racket。我应该怎么做?
user618815
问问题
1301 次
3 回答
6
是的,有一些关于像 Scheme 这样的动态语言的静态分析的工作。例如,参见 Olin Shivers ( http://www.ccs.neu.edu/home/shivers/citations.html ) 和 Manuel Serrano ( http://www-sop.inria.fr/members/Manuel) 的工作。塞拉诺/index-1.html)。
于 2011-03-09T18:45:16.870 回答
6
已经有,例如,打字球拍:http ://docs.racket-lang.org/ts-guide/index.html 由于有效的球拍代码是有效的打字球拍,你只需要改变你正在使用的语言。然后,对于具有类型化版本的库,加载那些而不是非类型化版本,并且某些类型错误可能已经被静态捕获。可以将更多类型注释添加到您自己的代码中,以保证类型正确性...
于 2011-03-09T21:05:53.140 回答
4
首先阅读Shivers 的这篇论文,解释了为什么 Scheme 中没有可用的静态控制流图。
可能在 Scheme 中实施 k-CFA。Matt Might 的站点和博客是探索高阶语言静态分析的良好起点。
我也为 Java 中的 Scheme 做了一些静态分析实现:
于 2011-03-12T10:47:42.430 回答