WebAssembly

format kodu maszynowego, przeznaczony do wykorzystania w aplikacjach webowych

WebAssembly, w skrócie Wasmotwarty standard przenośnego zapisu binarnego, oraz reprezentacji tekstowej (WAT – WebAssembly Text Format) w formie S-wyrażeń[1]. Głównym założeniem języka jest udostępnianie wysoko wydajnej platformy do uruchamiania aplikacji na stronach internetowych. Standardem zajmuje się organizacja W3C ze wsparciem Mozilli, Microsoftu, Google oraz Apple. Pracę nad Wasm zostały ogłoszone w 2015 roku[2]. W listopadzie 2017 Mozilla ogłosiła wsparcie "dla wszystkich głównych przeglądarek"[3]. Nazwa nawiązuje do języka asemblera, ponieważ jest to język niskopoziomowy.

WebAssembly
Ilustracja
Logo języka
Pojawienie się

5 lat temu

Typowanie

statyczne

Aktualna wersja stabilna

1.1
(9 grudnia 2019) [±]

Twórca

W3C, Mozilla, Microsoft, Google, Apple

Licencja

Apache License

Platforma sprzętowa

wieloplatformowy

Platforma systemowa

wieloplatformowy

Strona internetowa

WebAssembly (tzn. Podstawowa Specyfikacja WebAssembly[4] oraz Interfejs JavaScript WebAssembly[5]) stało się rekomendacją World Wide Web Consortium 5 grudnia 2019 roku, zostając czwartym językiem natywnie obsługiwanym w przeglądarkach internetowych, dołączając do HTML, JavaScript, oraz CSS.

Chociaż Wasm ma swoją reprezentację tekstową w postaci S-wyrażeń, jest najczęściej wynikiem kompilacji. Wiele języków można skompilować do Wasm, np. Rust, Go, C++, C#, Java, Python czy TypeScript.

Przykład reprezentacji tekstowejEdytuj

(module
  (import "math" "exp" (func $exp (param f64) (result f64)))
  (func (export "doubleExp") (param $0 f64) (result f64)
    (f64.mul
      (call $exp
        (get_local $0)
      )
      (f64.const 2)
    )
  )
)

PrzypisyEdytuj

Linki zewnętrzneEdytuj