Какие языки можно скомпилировать в веб-сборку (или wasm)?

Какие языки можно скомпилировать для веб-сборки (или wasm)?

Я считаю, что сейчас C, C ++ и rust (экспериментальный) могут быть скомпилированы в веб-сборку с бэкэндом компилятора llvm, причем такие языки, как Java, swift и C #, в настоящее время не поддерживаются, но являются возможными кандидатами на будущее .

Я не верю, что javascript можно скомпилировать в wasm. https://github.com/WebAssembly/design/issues/219

74 голоса | спросил Jordan Stewart 21 PMpFri, 21 Apr 2017 13:54:30 +030054Friday 2017, 13:54:30

3 ответа


0

Поддержка WebAssembly постоянно развивается. Прямо сейчас это поддерживается следующими языками:

Есть также коммерческие решения:

Что касается JavaScript, он вряд ли получит поддержку, поскольку WebAssembly - это статически типизированный язык ассемблера.

Существуют и другие более неясные /увлеченные языки, которые поддерживают WebAssembly. Дополнительную информацию можно найти в более полном Awesome WebAssembly Languages ​​ списке.

ответил ColinE 25 62017vEurope/Moscow11bEurope/MoscowSat, 25 Nov 2017 11:25:56 +0300 2017, 11:25:56
0

См. https://github.com/mbasso/awesome-wasm#compilers - пока это только C /C ++, другие экспериментальные, но количество «экспериментальной» части растет.

В настоящее время WebAssembly поддерживает только плоскую линейную память. Это подходит для C /C ++ /Rust и многих других языков, но большинству популярных современных языков нужен сборщик мусора для запуска. Это «функция после сборки MVP» в WebAssembly (см. https://github.com/WebAssembly/design/вопросы /1079 ). На данный момент единственный вариант - внедрить сборщик мусора внутри wasm с помощью некоторого пользовательского кода.

ответил nzeemin 10 J0000006Europe/Moscow 2017, 14:34:13
0

TeaVM может использоваться для передачи байт-кода JVM в WebAssembly. Вы можете зайти на домашнюю страницу проекта по адресу https://github.com/konsoletyper/teavm .

TeaVM по своей сути может передавать байт-код JVM в JS и WebAssembly. Поддержка WebAssembly находится на ранней стадии, но есть демоверсии, позволяющие сравнить производительность простого моделирования JBox2D с GWT, TeaVM (вывод JS) и TeaVM (вывод WASM), что весьма впечатляет.

Обратите внимание, что в настоящее время WebAssembly не имеет прямого доступа к DOM или другим API-интерфейсам JavaScript. Также в текущем MVP нет поддержки непрозрачных типов данных или даже GC. Тем не менее, можно сделать up /downcalls из JS в WASM и обратно, используя некоторые хитрости JS, как видно из упомянутых демонстраций.

ответил Mirko Sertic 24 PMpMon, 24 Apr 2017 13:16:08 +030016Monday 2017, 13:16:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132