4

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

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

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

谢谢

4

3 回答 3

4

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

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

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

于 2009-01-21T11:01:53.777 回答
1

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

于 2009-01-21T10:40:52.303 回答
1

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

进展如何?我也有兴趣做一个 Java 到 AVM2 的编译器......你有任何已发布的代码吗?

于 2009-12-27T13:28:29.230 回答