将语言添加到AVM2

问题描述 投票:4回答:3

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

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

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

谢谢

actionscript-3 compiler-construction language-design bytecode
3个回答
4
投票

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

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

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


1
投票

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

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.