【问题标题】:Haxe backend in Haxe?Haxe 中的 Haxe 后端?
【发布时间】:2015-01-04 13:38:08
【问题描述】:

我知道Haxe编译器是用OCaml编程语言编写的,对于编译器开发者来说是一个相当不错的选择。但是最近我发现了 Luaxe 项目,它似乎是 Haxe 的全功能 Lua 后端,并被开发为纯 Haxe 库。我查看了项目的代码,它使用某种宏魔法在编译时生成 Lua 源代码。所以我想问一下是否有可能在纯Haxe中实现一个功能齐全的后端,而无需深入研究OCaml并重建编译器?如果有,有什么限制吗?有没有关于如何在纯 Haxe 中实现后端的好文章?

【问题讨论】:

    标签: compiler-construction haxe


    【解决方案1】:

    看起来 Luaxe 项目正在使用 setCustomJSGenerator API。

    基本上,它作为一个宏运行,使用--macro "setCustomJSGenerator(luaxe.LuaGenerator.use)" 或类似的东西。

    我自己从未构建过自定义后端,但您可以使用它来执行自定义 Javascript,或者生成不同语言的源代码,这些都可以通过以下方式完成:

    您可以查看其中的每一个以了解 API 的工作原理,从外观上看,它们都具有相当相似的结构。

    在限制方面,您必须询问使用过此功能的人。我知道 Python 生成器最终被移到了标准的 Haxe 编译器中,所以现在大概在 OCaml 中——也许他们发现它太局限了?我不确定。

    如果您想了解更多关于这种方法的具体限制,我可以在 Haxe 邮件列表中询问,或者联系上述目标的开发人员并请他们分享他们的智慧。

    【讨论】:

      【解决方案2】:

      Haxelang 讨论组中有几个线程可能会为您提供有关此主题的一些信息。一些例子:

      Why is the Haxe compiler still in OCAML?

      What is missing from Haxe to replace Ocaml as a compiler language?

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-08
        • 1970-01-01
        • 1970-01-01
        • 2013-08-06
        • 1970-01-01
        • 2015-10-27
        相关资源
        最近更新 更多