将JavaScript代码转换为C代码

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

我不是在寻找一个软件。

非常非常棘手的问题— Javascript是一种非常dynamic的语言,在运行时几乎所有的东西都可以被改变:variables,函数,types等等。因此,它非常糟糕地映射到C上。甚至没有考虑eval() ,它可以让你在string中构造任意的Javascript块并运行它们。

任何Javascript翻译器都必须能够应付这样的事情,这意味着它必须在运行时将Javascript翻译成C语言,这使得它成为JIT,而这正是您已经使用的。

您可能要考虑编写用于Javascript的C绑定。 这些将允许您的Javascript代码调用C代码,反之亦然。 这将允许人们用C编写插件,将它们编译成.so共享库,现在你可以从你的Javascript代码中加载和运行。 这意味着你不需要翻译任何东西。

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

使用Castl将JavaScript的一个子集翻译成Lua,然后使用lua2c将Lua代码翻译成C语言也是可能的 。

或者,也可以将JavaScript编译为Python ,然后使用RPython编译器将Python源代码转换为C语言 。 由于RPython是Python的一个子集,这应该允许JavaScript的一个子集被翻译成C.

还有一个名为ts2c的编译器,它显然能够将JavaScript和TypeScript源代码翻译成C.

为什么转换的时候可以简单地embedded?

https://code.google.com/p/v8/“V8可以独立运行,也可以embedded到任何C ++应用程序中。”

embedded到C ++应用程序中允许JavaScript访问C ++应用程序可以访问的任何系统,而无需首先进行转换。 尽pipe如此,为了安全起见,我会限制访问的内容。 Web浏览器显然是embedded在C ++应用程序中的最突出的JavaScriptforms。 正如名称所暗示的那样,JavaScript是一种脚本语言,不打算像C代码那样被编译成汇编/机器代码。

这个项目看起来很有希望,尽pipe这是一个正在进行的工作。

https://github.com/andrei-markeev/ts2c

您可以在这里将JavaScript转换为C:

https://andrei-markeev.github.io/ts2c/

C语言可以做很多javascript或者v8引擎无法做到的东西,特别是系统程序,比如内存pipe理,直接内存访问,中断,汇编代码,线程pipe理。 所以不可能将c转换成javascript,除非它是非常简单的代码而没有一些系统代码。 使用nodeJS(不是v8 javascript)以及系统包装代码来执行一些系统级function。 这又是一个复杂的转换部分。 即使我们能够转换这个简单的代码,C和转换的JavaScript的执行不同,因为它是基于V8引擎。

可以将JavaScript转换为C.因为C可以虚拟地处理任何执行内容,包括解释器的执行内容。

您可以在nodejs中使用C ++模块。 例如: https : //github.com/shtylman/node-presentation