Pythonicセマンティクスで記述されたコードをネイティブで高速なJavascriptコードに自動的にコンパイル/変換しようとしています。
Javaなどのような素晴らしいデバッグサポートを備えた、これを行うことができるツールは何ですか?
誰かがこれをしましたか?
なんで?
複雑なメイン ループ、タイムライン、物理シミュレーション、および複雑な相互作用を含む視覚化コードを作成しようとしています。IE: これは実際の CPU バウンドの問題です。
Javascript を使用して記述し、そのブラウザー環境でテストすることは、適切な IDE で実行されている Java、.NET、または Python よりもデバッグが困難です。しかし、複雑なクライアント側コードを使用して実際の大規模な Web 開発を行うには、Javascript に直接記述しない場合でも、少なくとも Javascript にコンパイルする必要があります。
背景: 最近の進歩
Emscripten を使用すると、C/C++ を Javascript にコンパイルできます。これは、ArrayBuffer の型付き配列のサポートと新しいブラウザー JS エンジンにより、ブラウザーで効率的に実行できます。ASM.jsとLLJSは Mozilla の最近の速度向上を利用するためです (他のベンダーはおそらくすぐに従う)。
Altjs.orgには Javascript の代替案の長いリストがありますが、最近の速度の向上や優れたセマンティクスにはまだ焦点を当てていませんが、人々がより優れたツールを使用してブラウザー用にコーディングするのが一般的になりつつあります. 特に Emscripten には素晴らしいデモがたくさんあります。
すでに考慮されている可能なオプション:
- Shedskin - 現在、Shedskin を動作させようと試みましたが、C++/C のスキルが限られています (Emscripten は、使用する Boehm にインスパイアされたガベージ コレクター用の C API のみを公開しており、Shedskin にはオブジェクト用の C++ ガベージ コレクション クラスが必要ですが、これは存在しません)。まだ)。
- Unladen Swallow / RPython から LLVM へ - Ubuntu ではまだ正しくセットアップできていません
- Java を起動してから LLVM を起動します (私の Ubuntu システムではまだセットアップできませんでした)。
追加の制約:
- これを Ubuntu システムで使用する必要があります。
- コンパイルされた Javascript は、おそらく 1 MB 未満である必要があります
- クロス コンパイルされたネイティブ言語でのデバッグも可能であり、既存のデバッグ ツールを利用できます。
「指示表を作成するこのプロセスは非常に魅力的です。非常に機械的なプロセスは機械自体に引き継がれる可能性があるため、面倒な作業になるという実際の危険はありません。」-- アラン M. チューリング、1946 年