【发布时间】:2015-06-08 06:49:38
【问题描述】:
我应该提到我是在 C 中生成代码,而不是手动执行此操作。我这样说是因为如果它背后有很多代码并不重要,因为编译器应该管理它。无论如何,我将如何在 C 中模拟 lambda?我在想我可以在源代码的某处生成一个带有随机名称的函数,然后调用它?我不太确定。我还没有真正尝试过任何东西,因为我想在实施之前先把这个想法弄清楚。
有没有我可以做的某种预处理指令,或者一些可以让这个更干净的宏?我受到 Jon Blow 的启发尝试编译器开发,他似乎用他的语言 Jai 实现了 Lambdas。但是,我认为他在生成字节码,然后到 C 中做了一些事情?我不确定。
编辑: 我正在研究编译器,编译器只是我的一个项目,让我很忙,另外我想了解更多关于编译器的信息。我主要使用 clang,我在 Ubuntu 14.10 上。我没有任何垃圾收集,但我想尝试某种智能指针-y/rust/ARC 启发的垃圾收集内存模型,即几乎没有开销。我选择 C 是因为我想更多地涉足它。我的项目是免费软件,只是一个爱好项目。
【问题讨论】:
-
在什么情况下生成 C 代码?使用哪个操作系统和编译器?为什么是 C 而不是更好的东西(Common Lisp 或 Ocaml)?你在实现一些编译器吗?你有垃圾收集器吗?请编辑您的问题以改进它。
-
项目是什么,它的 URL 是什么?
-
可惜你的语言没有 GC 或闭包。
-
是的,我的意思是有可能。我现在只是在胡思乱想,你还有什么关于代码生成到另一种源语言的书可以推荐吗?
-
我强烈推荐 Queinnec 的 Lisp In Small Pieces(值得学习一点 Scheme,也许只是为了理解那本书)
标签: c lambda code-generation