我对创建一种在 AVM2 上运行的语言很感兴趣,并且正在寻求从哪里开始的建议。我确实意识到这绝不是一项微不足道的任务,但我想尝试一下,至少在此过程中了解更多有关实现语言的知识。
我一直在研究 ANTLR,并一直在阅读语言开发的语法问题。我正在寻找的是关于采取路径的建议或有用的参考资料/书籍。
例如,我想生成(脚本/手动)一些非常简单的 AVM2 字节码,并让它在虚拟机上运行作为开始。
Thanks
如果您对 Haxe 不感兴趣,您基本上需要编写自己的编译器,将对象编译为 ABC(Actionscript 字节代码)。这AVM2 概述 http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdfAdobe 提供了关于 ABC 和 AVM2 的文档,它应该可以帮助您入门。这是一个相当详尽的文档,但请注意字节码指令中的一些拼写错误。
您还需要将字节码包装在 doABC 标记中,作为 SWF 容器的一部分。您可以从以下位置获取更多信息SWF 文件格式 http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf文档。
如果您想在编写数据结构(优化的 int 格式等)方面取得先机,请随时查看 asmock 上的代码,这是我一直在从事的一个动态模拟项目。 SWF/ByteCode 生成内容有点混乱,但有 IDataOutput 包装器(SWF https://asmock.svn.sourceforge.net/svnroot/asmock/trunk/source/ASMock/src/flemit/framework/SWFOutput.as, ByteCode https://asmock.svn.sourceforge.net/svnroot/asmock/trunk/source/ASMock/src/flemit/framework/bytecode/ByteCodeWriter.as)这可能会派上用场。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)