asm.js
読み:エイエスエム-ドット-ジェイエス
外語:asm.js
JavaScriptのサブセット言語の一つ。静的型付けを特徴とする。公式の読み方は不明。
概要
由来
JavaScriptは、良くも悪くも動的型付けという言語的特徴があるが、このため最適化に限界があり、言語仕様が高速化の妨げとなっていた。
動的型付けは実用的ではなく、世の中の流れは、動的型付けから静的型付け+型推論へと移行しつつある。
Mozilla FirefoxでもJITコンパイラの改良を進め、型推論などで高速化を図ってきたが、限度があった。
そこでMozilla Firefoxでは、JavaScriptの下位互換言語として静的型付け言語を定義し、事前コンパイルを実施してJavaScriptの実行速度を劇的に向上させることとした。
asm.js用に最適化されたJavaScriptエンジンはOdinMonkeyと呼ばれており、Mozilla Firefox 22から搭載された。
特徴
asm.jsは、既存のJavaScriptのコード全てをそのまま高速化するものではない。
asm.jsの高速化を意識して書かれた特別なJavaScriptか、またはC/C++などの静的型付け言語からEmscrpten(LLVMを用いてJavaScriptに変換するコンパイラー)を用いて作成したJavaScriptのみが高速化される。
しかしasm.jsはJavaScriptであるため、asm.jsに対応していない処理系でもそのまま実行可能という利点と特徴がある。
再検索