向 AVM2 添加语言

2024-01-09

我对创建一种在 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(使用前将#替换为@)

向 AVM2 添加语言 的相关文章

  • 换肤时访问 hostComponent 的自定义属性 - Flex 4.5、SDK 4.5

    使用 SDK 4 1 我能够从自定义皮肤访问自定义按钮组件的自定义属性 我当前正在工作的项目需要 SDK 4 5 但我无法访问这些属性 这是一个例子 自定义按钮组件
  • 将应用程序状态保存在磁盘或其他位置,以便用户稍后访问它

    In 弹性构建器 4 5我正在做一个像这样的项目cacoo http www cacoo com 我想保存diagrams display object ui components text 在将应用程序关闭到应用程序之后我无法访问的某个地
  • 如何从java程序中编译.java文件[重复]

    这个问题在这里已经有答案了 可能的重复 从 Java 内部编译外部 java 文件 https stackoverflow com questions 10889186 compiling external java files from
  • 重写继承的构造函数字段时的差异?

    考虑这个简单的 Scala 类 class A val d Int Scala 之间是否存在差异 无论是行为还是生成的字节码 class B d Int extends A d and class B override val d Int
  • Flex 字典字面量

    在 Flex 中工作 我需要用相当复杂的结构填充字典 基于本文档页面 http livedocs adobe com flex 3 html help html content 10 Lists of data 4 html我尝试通过以下语
  • 当我使用 yymore() 时,在 EOF 处出现 Flex 错误“缓冲区末尾丢失”

    我正在编写一个 Flex 程序来处理字符串常量 当输入文件在字符串中遇到 EOF 时 我想返回一个 ERROR 标记 文件遇到 EOF 并打印 ERROR 后出现以下错误 致命的 Flex 扫描仪内部错误 缓冲区末尾丢失 这是我的代码 可以
  • 向 Java 类添加编程注释

    使用示例 我想在类字段上添加一个自定义注释 MyContainer 然后在所有此类字段上自动添加相关的 Hibernate 注释 取决于字段类型和属性 另外 我需要向类添加 JAXB XmlType 注释 并使类型名称基于类名称 我还想根据
  • 闪存和 CORBA

    如何让 AS3 和 或 Flex AIR 应用程序与 CORBA 应用程序进行通信 在有人为 Flex 编写符合 CORBA 的库 您可能愿意自己做 之前 您最好的选择可能是构建一个充当桥梁的 包装器 Web 服务 可通过标准 Flex W
  • 从 Air Native 扩展返回结构

    是否可以从本机代码返回结构 返回 int 或 boolean 相对简单 但是如何将更复杂的结构返回给动作脚本 您可以返回任何可以在本机代码中表示为 FREObject 的对象 这实际上包括任何 Actionscript 类或 Actions
  • Foreach 可以抛出 InvalidCastException 吗?

    想象一下下面的代码 class foreach convert public static void method2 List
  • Random.Next() 的 Actionscript 3 实现

    我想知道 AS 3 中是否有很好的 Random Next 实现 基本上想要生成一系列给定种子的随机数 有时 最小和最大限制 类似于 C System Random 类 Random random new Random return ran
  • 如何在命令行中使用 Visual Studio 编译 x64 代码?

    我想使用 Windows 命令行编译一个简单的 hello world 风格的程序 cl file name c 很容易 现在我想在 64 位中做同样的事情 我应该怎么办 您需要使用发出 x64 代码的 cl exe 编译器版本 哪一个有点
  • AS3 [Event(name="", type="")],有什么意义?

    我使用 FlashDevelop3 R2 和 Flex 3 3 SDK 进行开发 在很多情况下我必须使用嵌入元数据标签 如下所示 Embed source path to file private var Asset Class 我很好地理
  • 在 C# 中加密并在 Flex 中解密

    我需要解密 Flex 中的一些数据 这些数据是用 C 加密并写入文件的 为了简单起见 我选择使用 as3crypto As3 库和 Bruce Schneier C 库 AS3 as3加密链接 http code google com p
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • Perl 语言的目标是在运行时生成快速的程序吗?

    最近有朋友告诉我 看 Perl 从来就不是为了快而设计的 真的吗 我能找到的相关信息是来自维基百科 http en wikipedia org wiki Perl Overview 该语言旨在实用 易于使用 高效 完整 而不是美观 微小 优
  • 为什么 Python 在导入脚本时只保存脚本的字节码?

    既然执行Python字节码会比运行原始源代码更快 因为Python不需要重新编译 为什么Python在导入脚本时只保存编译后的字节码呢 为每个执行的脚本保存 pyc 文件不是更好吗 无论如何 Python 解释器的启动时间都需要时间 即使您
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方
  • 为什么需要数字后缀?

    C 语言 我确信还有其他语言 需要在数字文字末尾添加后缀 这些后缀指示文字的类型 例如 5m是一个小数 5f是一个浮点数 我的问题是 这些后缀真的有必要吗 或者是否可以从上下文中推断出文字的类型 例如 代码decimal d 5 0应该推断
  • 编译器琐事:这段代码的结果是什么

    我今天正在审查一些代码 并遇到了一些代码 此片段准确地描述了 public abstract class FlargBase public FlargBase this DoSomething public abstract void Do

随机推荐

  • 如何设置 UIBarButtonItem alpha

    let searchBtn UIBarButtonItem image UIImage named ic search style plain target self action selector self searchButton le
  • 三星手机和Notification.FLAG_INSISTENT错误?

    我开发了一个计时器应用程序 但有些人注意到三星 Galaxy 或 Spica 上的通知永远不会停止 我的通知中附加了这些标志 notification flags Notification FLAG AUTO CANCEL Notifica
  • 对象实体到 CSV 序列化/转换

    如何在 C 中将所有值 属性 写入 csv 格式的字符串 例如 class Person string firstName string lastName int age Person person new Person Kevin Kli
  • PyOpenCL 中的时间测量

    我正在 FPGA 和 GPU 中使用 PyOpenCL 运行内核 为了测量执行所需的时间 我使用 t1 time event mykernel queue c width c height block size block size d c
  • “make clean”导致“没有规则使目标‘clean’”

    我运行的是 Ubuntu 10 04 每当我跑步时make clean 我明白了 make 没有规则可以使目标 干净 停止 这是我的生成文件 CC gcc CFLAGS g pedantic O0 std gnu99 m32 Wall PR
  • 如何实现 getSupportParentActivityIntent() 来动态设置 android 中向上按钮的活动[重复]

    这个问题在这里已经有答案了 Android中如何知道哪个父Activity调用了子Activity 假设我有三个活动 A B 和 C A 和 B 是父活动 C 是子活动 这意味着 C 可以从 A 或 B 启动 那么我如何知道哪个父活动导致启
  • 通过配对蓝牙打印机 Canon CP 900、CP 800 打印图像

    我需要将我的应用程序与配对的蓝牙设备连接 这将打印图像 via 蓝牙打印机 佳能 CP900 和 CP800 SELPHY And I 没有找到 any 佳能打印机 Android SDK任何帮助或链接都将是有意义的 我找到了这个link
  • 通过映射另一个 Observable 返回一个 Observable

    我正在尝试映射一个可观察值 从返回的可观察值中获取一个值 然后将该值输入到另一个可观察值中并返回该结果 这是我到目前为止所拥有的 getJobsByUser user User Observable
  • 将子类传递给方法但将超类作为参数?

    我有一个抽象类Vehicle有 2 个已实现的子类RedVehicle and YellowVehicle 在另一堂课上我有一个List
  • Mongodb:从 mongo shell 中的 ObjectId 执行日期范围查询

    我有一个看起来像这样的集合 id ObjectId 50a68673476427844b000001 other fields 我想做一个范围查询来查找两个日期之间的记录 我知道我可以通过执行以下操作从 mongo shell var 中的
  • 将 div 从父网站复制到 iframe 中的文本区域

    在谷歌翻译中 我制作了谷歌翻译的第二个实例 var makediv document createElement secondinstance makediv innerHTML makediv setAttribute id iframe
  • Serilog 缺少什么命名空间?

    I am able to use LoggerConfiguration in my C code with various Serilog Sinks but my compiler is complaining about the sp
  • PHP 中如何判断一个日期是否在两个日期之间?

    我需要知道是否 paymentDate 2010 年 12 月 31 日 有效期为 contractDateBegin 01 01 2001 和 contractDateEnd 01 01 2012 日 月 年格式 从 PHP 5 3 开始
  • Python HTMLParser:UnicodeDecodeError

    我正在使用 HTMLParser 来解析我用 urllib 下拉的页面 并且遇到了UnicodeDecodeError将某些传递给时的异常HTMLParser 我尝试使用chardet检测编码并转换为ascii or utf 8 the d
  • 改变div的背景颜色

    这很简单 我搜索过但找不到确切的答案 我想做的就是有一个 div 当你点击链接时它会改变颜色 我想要大约 3 或 4 种颜色选择 我该怎么做 Thanks 这是一个快速解决方案
  • 使用 SignalR 的 WCF 服务

    我有一个网络应用程序 仪表板上几乎没有图表 图表数据是在客户端调用 WCF 服务方法的 document ready 函数中获取的 我现在想要的是在我的应用程序中使用 SignalR 我对 SignalR 真的很陌生 我如何从 Signal
  • 如何进行内核线程通信?

    如何让内核模块中的线程进行通信 我正在编写一个内核模块 我的架构将使用三个需要通信的线程 到目前为止 我的研究使我相信唯一的方法是使用共享内存 声明全局变量 和锁定机制来同步线程之间的读 写 那里关于这方面的材料相当稀缺 我还有其他可以考虑
  • 当您的应用程序安装在 Android 上时,您可以运行 Intent 或脚本吗?

    例如 RPM 有 post postun pre preun 允许您编写在安装过程的不同阶段运行的脚本 我想做一些事情 比如在安装我的 Android 应用程序时创建和填充数据库 Ted 不 抱歉 这是明确不支持的
  • 将生成的进程的输出捕获到字符串

    背景 我正在开发一个程序 需要能够捕获stdout stderr以及程序的返回值 理想情况下 我希望将这些捕获到存储在对象内的字符串中 该对象保存过程的详细信息 我目前有一些代码 可以使用一些 在我看来 古老的 C 文件处理魔法将输出保存到
  • 向 AVM2 添加语言

    我对创建一种在 AVM2 上运行的语言很感兴趣 并且正在寻求从哪里开始的建议 我确实意识到这绝不是一项微不足道的任务 但我想尝试一下 至少在此过程中了解更多有关实现语言的知识 我一直在研究 ANTLR 并一直在阅读语言开发的语法问题 我正在