【问题标题】:Adding a language to the AVM2向 AVM2 添加语言
【发布时间】:2009-01-21 10:25:25
【问题描述】:

我对制作一种在 AVM2 上运行的语言很感兴趣,我正在寻找有关从哪里开始的建议。我确实意识到这绝不是一项微不足道的任务,但我想尝试一下,至少在此过程中了解更多关于实现语言的信息。

我已经搞砸了 ANTLR,并且一直在阅读有关语言开发的语法问题。我正在寻找的是关于路径的建议或有用的参考资料/书籍。

例如,我想(脚本/手动)生成一些非常简单的 AVM2 字节码,然后让它在 VM 上运行作为开始。

谢谢

【问题讨论】:

    标签: actionscript-3 compiler-construction language-design bytecode


    【解决方案1】:

    如果您对 Haxe 不感兴趣,则基本上需要编写自己的编译器,将对象编译为 ABC(Actionscript 字节码)。 ABC 和 AVM2 上的 Adob​​e 提供的 AVM2 Overview 文档应该可以帮助您入门。这是一个相当详尽的文档,但请注意字节码说明中的一些拼写错误。

    您还需要将字节码包装在 doABC 标记中,作为 SWF 容器的一部分。您可以从SWF File Format 文档中获取更多信息。

    如果您想在编写数据结构(优化的 int 格式等)方面占得先机,请随时在我一直从事的动态模拟项目 asmock 上查看代码。 SWF/ByteCode 生成的东西有点乱,但有一些 IDataOutput 包装器(SWFByteCode)可能会派上用场。

    【讨论】:

    • 谢谢Richard,我刚刚挑选了这些文档,现在和他们坐下。我将尝试使用 ASMock 代码输出一个简单的 SWF 文件,该文件首先执行一些简单的算术运算。
    • 生成字节码 (flemit) 的 asmock 部分实际上还没有记录/支持,但如果您有任何问题,请随时提出。
    【解决方案2】:

    Adobe 的 Project Alchemy 可以作为一个很好的参考 http://labs.adobe.com/technologies/alchemy/

    进展如何? 我也有兴趣做一个 Java 到 AVM2 的编译器...... 有公开的代码吗?

    【讨论】:

    • 我查看了它,发现它的工作量太大,尽管我仍然对它感兴趣。我对翻译语言不感兴趣,但更喜欢制作修改后的 as3。
    【解决方案3】:

    看看Haxe:它是一种开源语言,可以针对不同的平台,包括AVM。您可以深入研究 SWF 编译器源代码以获得一些灵感。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2018-10-26
      • 2018-08-13
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 2019-04-27
      • 2021-12-15
      • 1970-01-01
      相关资源
      最近更新 更多