将javascript代码转换为c代码

新手上路,请多包涵

有什么方法可以将 C 代码转换为 JavaScript 以及从 JavaScript 转换为 C 代码吗?我发现 V8 juice 可以从 C++ 生成 JavaScript-side 类,但这只是一种方式(C++ 到 JavaScript)。

我不是在寻找软件。

原文由 Wassim AZIRAR 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

非常、非常棘手——Javascript 是一种高度动态的语言,几乎所有的东西都可以在运行时改变:变量、函数、类型等的名称。因此它非常糟糕地映射到 C。甚至没有考虑 eval() ,它可以让你在字符串中构造任意的 Javascript 块并运行它们。

任何 Javascript 翻译器都必须能够处理这些事情,这意味着它必须在运行时将 Javascript 翻译成 C — 这使它成为您已经在使用的 JIT。

您可能想看看为 Javascript 编写 C 绑定。这些将允许您的 Javascript 代码调用 C 代码,反之亦然。这将允许人们用 C 编写插件,将它们编译成 .so 共享库,您现在可以从 Javascript 代码加载和运行它们。这意味着您无需翻译任何内容。

Javascript 不是我的领域,所以我不能推荐任何特定的机制,恐怕 — 但如果您已经找到的 V8Juice 不让您这样做,我会感到非常惊讶。

原文由 David Given 发布,翻译遵循 CC BY-SA 2.5 许可协议

有一些编译器可以将 JavaScript 和 TypeScript 翻译成 C:

  • QuickJS 使用嵌入式 JavaScript 引擎将 JavaScript 编译为 C。与此处列出的其他编译器不同,此实现相当完整。
  • ts2c 将 JavaScript 和 TypeScript 源代码转换为 C,但它只支持 JavaScript 的一小部分功能。
  • NectarJS 将 JavaScript 的一个子集编译为 C 或 WebAssembly。

同样,可以使用 AssemblyScript 将一些静态类型的 JavaScript 程序编译为 WebAssembly,然后使用 wasm2c 将它们反编译为 C。

或者,可以将 JavaScript 编译为另 一种编译为 C 的语言

  • 将 JavaScript 编译为 Python ,然后使用 CythonRPython 将 Python 编译为 C。由于这些编译器与 Python 的一个子集兼容,这应该允许将 JavaScript 的一个子集转换为 C。
  • 使用 Castl 将 JavaScript 编译为 Lua,然后使用 lua2c 将 Lua 代码转换为 C。

原文由 Anderson Green 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题