ЛеоЦарев (leotsarev) wrote,
ЛеоЦарев
leotsarev

WebAssembly (We need to go deeper)

Я прочитал пост Брендана Айка https://brendaneich.com/2015/06/from-asm-js-to-webassembly/ про webassembly и вот что я понял.
1. Внутри браузера (C++) ...
2. есть виртуальная машина JavaScript ...
3. Она исполняет загрузчик на JavaScript (вернее, компилит его на лету в машинный код x86) ...
4. Который на самом деле не настоящий JavaScript, а asm.js, и виртуальная машина это замечает и переключается в режим более «прямой» и более «жадной» компиляции  ...
5. Кстати, как и большинство кода на asm.js, загрузчик изначально написан на С/С++ и скомпилирован в asm.js при помощи компилятора Emscripten ...
6. Загрузчик на asm.js разбирает специальный файл .wasm ...
7. Который скомпилен из кода С++ при помощи Emscripten ...
8. И превращает его в Javascript ...
9. Конечно, не настоящий JavaScript, а asm.js ...
10. Который тоже компилится на виртуальной машине JavaScript из пункта (2).

Ну в общем вы поняли,
граммар-наци-мечты-1258705

На самом деле, конечно, это не окончательный уровень абстракции.
Машинный код x86 соответствует модели CISC-процессора (сложные, «толстые» инструкции), а современные процессоры совсем другие, они на лету превращают CISC-инструкции в легкие, простые инструкции RISC-стиля.

Но главное — сделать первый шаг к смерти JavaScript. Ура!
Tags: как страшно жить, программирование
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments