Bef*_*rem 4 compiler-construction bytecode language-design actionscript-3
我对创建一种在 AVM2 上运行的语言很感兴趣,并且正在寻求从哪里开始的建议。我确实意识到这绝不是一项微不足道的任务,但我想尝试一下,至少在此过程中了解更多有关实现语言的知识。
我一直在研究 ANTLR,并一直在阅读语言开发的语法问题。我正在寻找的是关于采取路径的建议或有用的参考资料/书籍。
例如,我想生成(脚本/手动)一些非常简单的 AVM2 字节码,并让它在虚拟机上运行作为开始。
谢谢
如果您对 Haxe 不感兴趣,您基本上需要编写自己的编译器,将对象编译为 ABC(Actionscript 字节代码)。Adobe 在 ABC 和 AVM2 上提供了AVM2 概述文档,它应该可以帮助您入门。这是一个相当详尽的文档,但请注意字节码指令中的一些拼写错误。
您还需要将字节码包装在 doABC 标记中,作为 SWF 容器的一部分。您可以从SWF 文件格式文档中获取更多信息。
如果您想在编写数据结构(优化的 int 格式等)方面取得先机,请随时查看 asmock 上的代码,这是我一直在从事的一个动态模拟项目。SWF/ByteCode 生成内容有点混乱,但 IDataOutput 包装器(SWF、ByteCode)可能会派上用场。