我对制作一种在 AVM2 上运行的语言很感兴趣,我正在寻找关于从哪里开始的建议。我确实意识到这绝不是一项微不足道的任务,但我想尝试一下,至少在此过程中了解更多关于实现语言的知识。
我已经搞砸了 ANTLR,并且一直在阅读语言开发的语法问题。我正在寻找的是关于路径的建议或有用的参考资料/书籍。
例如,我想生成(脚本/手动)一些非常简单的 AVM2 字节码,并让它在 VM 上运行作为开始。
谢谢
我对制作一种在 AVM2 上运行的语言很感兴趣,我正在寻找关于从哪里开始的建议。我确实意识到这绝不是一项微不足道的任务,但我想尝试一下,至少在此过程中了解更多关于实现语言的知识。
我已经搞砸了 ANTLR,并且一直在阅读语言开发的语法问题。我正在寻找的是关于路径的建议或有用的参考资料/书籍。
例如,我想生成(脚本/手动)一些非常简单的 AVM2 字节码,并让它在 VM 上运行作为开始。
谢谢
如果您对 Haxe 不感兴趣,则基本上需要编写自己的编译器,将对象编译为 ABC(Actionscript 字节码)。Adobe 在 ABC 和 AVM2 上提供的AVM2 概述文档应该可以帮助您入门。这是一个相当详尽的文档,但请注意字节码说明中的一些拼写错误。
您还需要将字节码包装在 doABC 标记中,作为 SWF 容器的一部分。您可以从SWF 文件格式文档中获得更多信息。
如果您想在编写数据结构(优化的 int 格式等)方面占得先机,请随时在我一直从事的动态模拟项目 asmock 上查看代码。SWF/ByteCode 生成的东西有点乱,但有 IDataOutput 包装器(SWF、ByteCode)可能会派上用场。
看看Haxe:它是一种开源语言,可以针对不同的平台,包括 AVM。您可以深入研究 SWF 编译器源代码以获得一些灵感。
Adobe 的 Project Alchemy 可以作为很好的参考 http://labs.adobe.com/technologies/alchemy/
进展如何?我也有兴趣做一个 Java 到 AVM2 的编译器......你有任何已发布的代码吗?