Bahasa apa yang dapat disusun untuk WebAssembly (Wasm)?

Bahasa apa yang dapat disusun untuk WebAssembly (Wasm)?

Saya percaya sekarang C, C++, dan Karat (eksperimental) dapat disusun untuk WebAssembly, dengan compiler llvm backend, dengan bahasa seperti Java, Swift, dan C# saat ini tidak didukung, tetapi menjadi kandidat untuk pembangunan masa depan.

Saya don't percaya JavaScript dapat disusun untuk Wasm. https://github.com/WebAssembly/design/issues/219

Mengomentari pertanyaan (1)

WebAssembly dukungan terus berkembang. Sekarang hal ini didukung oleh bahasa-bahasa berikut:

Ada solusi komersial juga:

Mengenai JavaScript, hal ini tidak mungkin untuk mendapatkan dukungan sebagai WebAssembly adalah statis diketik bahasa assembly.

Ada juga berbagai lebih jelas / penghobi bahasa yang mendukung WebAssembly. Rincian lebih lanjut dapat ditemukan di lebih lengkap Mengagumkan WebAssembly Bahasa daftar.

Komentar (4)

Lihat https://github.com/mbasso/awesome-wasm#compilers -untuk sekarang ini's hanya C/C++, yang lain masih dalam percobaan, tapi jumlah "eksperimental" bagian tumbuh.

Saat ini WebAssembly mendukung hanya datar linear memori. Yang's cocok untuk C/C++/Karat dan banyak bahasa lainnya, tapi yang paling populer dalam bahasa-bahasa modern perlu garbage collector untuk menjalankan. Yang's "post-MVP fitur" dari WebAssembly (lihat https://github.com/WebAssembly/design/issues/1079). Untuk saat ini satu-satunya pilihan adalah untuk melaksanakan pengumpul sampah dalam wasm dengan beberapa kode kustom.

Komentar (1)

TeaVM dapat digunakan untuk transpile JVM bytecode untuk WebAssembly. Anda dapat checkout proyek di homepage https://github.com/konsoletyper/teavm.

TeaVM pada intinya dapat transpile JVM bytecode untuk JS dan WebAssembly. WebAssembly dukungan di tahap awal, tetapi ada demo yang tersedia untuk membandingkan kinerja dari yang sederhana JBox2D simulasi dengan GWT, TeaVM(JS output) dan TeaVM(WASM output), yang cukup mengesankan.

Harap dicatat bahwa WebAssembly saat ini tidak memiliki akses langsung ke DOM atau JavaScript Api. Juga di saat MVP ada tidak mendukung tipe data buram atau bahkan GC. Namun, adalah mungkin untuk melakukan up/downcalls dari JS ke WASM dan kembali lagi menggunakan beberapa JS tipu daya, seperti yang terlihat di sebutkan demo.

Komentar (0)

Repo ini

Berisi daftar bahasa yang saat ini menyusun atau memiliki VMs di WebAssembly(wasm)

Fitur:

  • Menggunakan emojis untuk menunjukkan bagaimana matang masing-masing bahasa saat ini
  • Menyediakan link untuk masing-masing bahasa nama proyek dan pilihan
Komentar (2)