あなたはすでにそれが何であるかを説明しました。使用法は、すべてのブラウザで機能する低レベル言語であり、ほとんどのブラウザで非常に高速で、一部のブラウザでは非常に高速であることです。これを作成することは、他のプログラミング言語で行うことと同じくらい自由です。
Mozillaが最も熱心に使用しているユースケースは次のとおりです。Emscriptenを介して、LLVMバックエンド(最も顕著なのはCおよびC ++)を持つ言語をJavaScriptにコンパイルする方法はすでにあります。asm.jsは、Emscriptenが既に発行しているものに非常に近いため、Emscriptenコード(今日のJavaScript JITコンパイラーでは既に非常に高速です)がさらに高速になり、既存のコードベースをWebに移植するという目標がさらに高まります。繰り返しますが、これを正確に使用するのはあなたの決断です。ゲームの移植は1つのユースケースです(Mozillaは明らかに積極的に関与しています)が、CやC ++で書かれたものは無数にあり、その多くは誰かのWebサイトに役立つかもしれません。実行可能性についての保証なしで、私は飛び回っているのを見ました(そして、私自身の工夫のいくつか):
- 汎用アルゴリズム(zlib、libjpeg、openssl、FFT実装など)を移植して、新しいWeb標準を作成したり、個別のブラウザに依存して実装したりすることなく、JavaScript / Webサイトの機能を強化します。
- JavaScript以外の言語がブラウザーで実行できるように、インタープリターを移植します。オーバーヘッドが少なく、移植作業が最小限です。
- より多くのコンパイラ、特にJavaScriptにうまくマッピングせず、その機能とオーバーヘッドのほとんどを必要としないコンパイラのバックエンドとしてasm.jsを使用します。例としては、メモリ割り当てのない高速な数値処理用に設計された言語があります。
- asm.jsを使用して JavaScriptでJITを作成します。ActionScriptなどの任意の言語を実装できます。
- 同様に、既存のJITコンパイラを移植してブラウザで実行します(JSのオーバーヘッドが事実上ゼロのインタプリタの移植を参照)。これはおそらく、PyPyと同様に、JITコンパイラーが自動的に生成される場合にのみ実行可能です。