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