gpt4 book ai didi

用 C 实现的干净、独立的 VM,编译代码大小在 100-200K 以内?

转载 作者:太空狗 更新时间:2023-10-29 16:27:10 26 4
gpt4 key购买 nike

我正在寻找具有以下功能的虚拟机:

  • 编译代码占用空间小(不到 200K)。
  • 没有外部依赖。
  • Unicode(或原始)字符串支持。
  • 整洁的代码/组织良好。
  • C(99) 代码,不是 C++。
  • 类 C/Java 语法
  • 运算符/按位:AND/OR 等
  • 线程 支持。
  • 通用/可移植字节码。字节码应该在不同的机器上工作,即使它是在具有不同字节序等的不同体系结构上编译的。
  • 准系统,没有什么特别的必要。仅支持基本语言。
  • 词法分析器/解析器和编译器与 VM 分开。我会将虚拟机嵌入到程序中,然后独立编译字节码。

到目前为止,我已经查看了 Lua , Squirrel , Neko , Pawn , Io , AngelScript... 唯一有点接近规范的是 Lua,但是语法太糟糕了,它没有按位支持,而且代码风格通常很糟糕。 Squirrel 和 IO 很大,主要是。 Pawn 是有问题的,它很小,但字节码不是跨平台的,并且实现存在一些严重的问题(例如字节码根本没有经过验证,甚至头文件 AFAIK 也没有)。

我很想在那里找到合适的选择。

谢谢!

更新:Javascript 解释器是……解释器。这是基于字节码的 VM 的 VM 问题,因此需要编译器/字节码 vm 分离。 JS 是解释型的,很少由 JIT 编译。我不一定要 JIT。此外,所有当前的 ECMAScript 解析器都非常小。

最佳答案

您说您已经查看了NekoVM ,但不要提及为什么它不适合你。

它是用 C 而不是 C++ 编写的,VM 小于 10kLOC,编译大小约为 100kB,编译器是一个单独的可执行文件,可生成可移植字节码。该语言本身具有类似 C 的语法、按位运算符,并且它不是线程敌对的。

关于用 C 实现的干净、独立的 VM,编译代码大小在 100-200K 以内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com