당신은 이미 무엇을 설명 입니다 . 모든 브라우저에서 작동하는 저급 언어이므로 대부분 매우 빠르며 일부는 빠릅니다. 당신이 만드는 것은 다른 프로그래밍 언어로하는 것만 큼 개방적입니다.
Mozilla가 가장 열심 인 유스 케이스는 다음과 같습니다. Emscripten을 통해 LLVM 백엔드 (대부분 C 및 C ++)를 사용하여 JavaScript로 언어를 컴파일하는 방법이 이미 있습니다. asm.js는 Emscripten이 이미 방출 한 것에 매우 가깝기 때문에 Emscripten 코드 (오늘날 JavaScript JIT 컴파일러에서 인상적으로 빠름)가 훨씬 빨라져 기존 코드 기반을 웹으로 포팅하는 목표를 더욱 발전시킬 수 있습니다. 다시, 당신이 이것을 정확하게 사용하는 것은 당신의 결정입니다. 포팅 게임은 하나의 유스 케이스 (모질라가 적극적으로 참여하고 있음)이지만 C 및 C ++로 작성된 수많은 것들이 있으며, 그중 일부는 누군가의 웹 사이트에 유용 할 수 있습니다. 타당성에 대해 보장하지 않고 내가 본 것 중 일부는 내 자신의 고안 물과 함께 뛰어 들었다.
- 범용 웹 알고리즘 (예 : zlib, libjpeg, openssl, FFT 구현)을 포팅하여 새로운 웹 표준을 만들지 않고 개별 브라우저에 따라 JavaScript / 웹 사이트에서 더 많은 작업을 수행 할 수 있도록합니다.
- 인터프리터를 포팅하여 JavaScript 이외의 언어가 오버 헤드를 줄이고 포팅 작업을 최소화하면서 브라우저에서 실행할 수 있습니다.
- 더 많은 컴파일러, 특히 JavaScript에 잘 매핑되지 않고 대부분의 기능과 오버 헤드가 필요하지 않은 컴파일러의 백엔드로 asm.js를 사용합니다. 메모리 할당없이 빠른 숫자 작업을 위해 설계된 언어를 예로들 수 있습니다.
- JavaScript 에서 asm.js를 사용하여 JIT 작성 ActionScript 와 같은 모든 언어를 구현할 수 있습니다 .
- 같은 맥락에서 기존 JIT 컴파일러를 브라우저에서 실행하도록 포팅 (JS보다 효과적으로 오버 헤드가없는 포팅 인터프리터 참조). 이것은 PyPy와 같이 JIT 컴파일러가 자동으로 생성되는 경우에만 가능합니다.