Supero(Haskell超级编译器)用法?

时间:2011-07-13 11:40:27

标签: haskell optimization ghc

我正在查看这个项目http://community.haskell.org/~ndm/supero/

我已经下载并编译了该程序,并可以在包含的示例中使用它。但是我在源代码上尝试了它,看起来程序只能理解Haskell的一个子集。

我有这样的事情:

  

supercompiler:unclled fromDecl:PatBind(SrcLoc {srcFilename =   “unknown.hs”,srcLine = 15,srcColumn = 1})(PTuple [PVar(Ident)   “宽度”),PVar(标识“高度”)])没什么(UnGuardedRhs(元组[Lit]   (Int 7),Lit(Int 6)]))(BDecls [])

此处的代码https://github.com/phuc/Score4-haskell/blob/master/Main.hs

如何让GHC输出Supero理解的那种Haskell?

非常感谢。

2 个答案:

答案 0 :(得分:10)

幻灯片here似乎表明它首先通过Yhc,然后转换为中间形式HILL(一阶Haskell中级小语言)   - 参见幻灯片),然后,最后,可以进行分析。

另一张幻灯片提供了此图表:

Diagram of Compilation Process

答案 1 :(得分:3)

据我了解,当前版本的Supero只处理ICFP 2010文件中描述的Haskell子集。

之前的版本确实与YHC管道集成,可以处理更大的子集。这已经有一段时间了,YHC本身的编辑非常灵魂摧毁。我不推荐它。

Max Bolingbroke目前正在将自己的超级编译器集成到GHC中。但是,我无法在他的GitHub存储库中看到代码,因此它可能尚未准备好供公众使用。