Joh*_*ler 20 lisp compiler-construction haskell language-design llvm
所以我现在有一个用haskell编写的相当完整的LISP(方案)解释器.只是为了好玩,我想尝试将它编译成LLVM.大多数代码生成看起来都非常简单,但我对如何为lambda表达式生成代码感到茫然(在lisp中有点重要;))以及如何在遇到define表达式时管理堆.
我怎么能为这些表达式生成代码?
注意:我可以为lambda表达式的主体生成代码.令我困惑的是如何在某处"放置"该代码并使其可调用.
Don*_*art 10
请参阅Lennart的博客文章:http://augustss.blogspot.com/2009/06/more-llvm-recently-someone-asked-me-on.html
看看这个compileFunction功能.特别是newFunction在LLVM核心中:http://hackage.haskell.org/packages/archive/llvm/0.9.1.2/doc/html/LLVM-Core.html#g:23