web-dev-qa-db-ja.com

JavaScriptコードをCコードに変換する

CコードをJavaScriptに、またJavaScriptからCに変換する方法はありますか? C++からV8 juiceクラスを生成できるJavaScript-sideが見つかりましたが、それは1つの方法(C++からJavaScript)にすぎません。

私はソフトウェアを探していません。

45
Wassim AZIRAR

Castl を使用してJavaScriptのサブセットをLuaに変換し、次に lua2c を使用してLuaコードをCに変換することができます。

あるいは、 JavaScriptをPythonにコンパイルする の後に、RPythonコンパイラを使用して PythonソースコードをCに変換する にすることもできます。 RPythonはPythonのサブセットです。これにより、JavaScriptのサブセットをCに変換できます。

ts2c と呼ばれるコンパイラもあります。このコンパイラは、明らかにJavaScriptとTypeScriptのソースコードをCに変換できます。

さらに別のオプションは、 NectarJS を使用してJavaScriptをCまたはWebAssemblyにコンパイルすることです。

21
Anderson Green

単に埋め込むことができるのに、なぜ変換するのですか?

https://code.google.com/p/v8/ 「V8はスタンドアロンで実行するか、C++アプリケーションに埋め込むことができます。」

C++アプリケーションに組み込まれているため、JavaScriptはC++アプリケーションがアクセスできるシステムにアクセスできるため、そもそも変換する必要がありません。ただし、セキュリティ上の理由から、アクセスできるものをいくらか制限します。 Webブラウザーは、C++アプリケーションに組み込まれているJavaScriptの最も顕著な形式であることは明らかです。名前からもわかるように、JavaScriptはスクリプト言語であり、Cコードのようにアセンブリ/マシンコードにコンパイルすることを意図していません。

6
user3015682

このプロジェクトは進行中ですが、非常に有望に見えます。

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

ここでJavaScriptをCにオンラインで変換できます。

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

5
arpo

Fabricice BellardQuickJS JavaScriptインタープリターには JS to Cコンパイラー も含まれています。

1
ceilingcat

C言語は、javascriptやv8エンジンではできない多くのこと、特にメモリ管理、直接メモリアクセス、割り込み、アセンブリコード、スレッド管理などのシステムプログラムを実行できます。そのため、システムコードを含まない非常に単純なコードでない限り、cをjavascriptに変換することはできません。 nodeJS(v8 javascriptではない)とシステムラッパーコードを使用して、システムレベルの機能をいくつか実行します。繰り返しますが、それは変換の複雑な部分です。この単純なコードを変換できたとしても、cと変換されたjavascriptの実行はv8エンジンに基づいているため異なります。

JavascriptをCに変換することは可能です。なぜなら、Cはインタープリターの実行を含むあらゆる実行を実質的に処理できるからです。

1
Mallik