将语言添加到AVM2

时间:2009-01-21 10:25:26

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

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

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

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

由于

3 个答案:

答案 0 :(得分:4)

如果你对Haxe不感兴趣,你基本上需要编写自己的编译器,将对象编译为ABC(Actionscript Byte Code)。 Adobe在ABC和AVM2上提供的AVM2 Overview文档可以帮助您入门。这是一个相当全面的文档,但请注意字节码指令中的一些拼写错误。

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

怎么回事? 我也对Java到AVM2编译器感兴趣... 你有任何已发布的代码吗?