Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Asm.js это специальное подмножество JavaScript, имеющее высокую оптимизацию. В этой статье описаны возможности asm.js, какие улучшения оно дает, где и как это можно применять, а также дополнительные ресурсы и примеры.

Что такое asm.js?

Это небольшое, строгое подмножество JavaScript которое позволяет только вещи, типа `while`, `if`, числа, именованные функции, и другие простые конструкции. Оно не разрешает использование объектов, строк, и всего, что требует больших нагрузок. Asm.js напоминает C во многих вещах, но он является полностью допустимым для JavaScript и работает на всех имеющихся движках. Он поддерживает JS движки, чтобы оптимизировать такой код, дает компиляторам, типа Emscripten четкое определение кода, который нужно компилировать. Мы покажем, как asm.js код выглядит, чем он полезен  и как работать с ним.

Это подмножество JavaScript оптимизировано во многих движках, использующих технологию компиляции Just-In-Time (JIT). Однако,  мы можем работать над оптимизацией такого кода еще больше и получать максимальную производительность. Благодаря этому, упрощается совместная работа нескольких JS движков, потому что легче договориться о стандартах. Идея в том, что этот вид кода должен работать очень быстро в каждом движке, и если это не так, это ошибка, и есть четкая спецификация, что двигатели должны оптимизировать.

Это также делает его легким для людей, пишущих компиляторы, которые хотят создавать высокопроизводительный код в интернете. Они могут узнать о asm.js спецификациях и узнать что он будет работать быстерее, если поддерживает шаблоны asm.js. Emscripten,компилятор C/C++ в JavaScript, выдает код asm.js, работающий в некоторых брацзерах с производительностью, близкой к машинному коду.

Кроме того, если движок специально распознает код asm.js, то можно сделать еще больше оптимизаций. Firefox это единственный браузер, котрый умеет делать это уже сейчас.

Итог о asm.js

asm.js это вспомогательный язык програмирования. asm.js анм.JS имеет очень предсказуемую скорость производительности, так как он ограничен подмножеством JavaScript, которое предоставляет только строго типизированные целые числа, числа с плавающей запятой, вызовы математических функций, вызовы функций и множество доступов. Рабочие характеристики близки скорее к машинному коду, чем к стандартам JS. Использование этого подмножества уже поддерживается главными веб браузерами. Работа asm.js также зависит от браузера и от оборудования.

Метки документа и участники

 Внесли вклад в эту страницу: Cyganov
 Обновлялась последний раз: Cyganov,