W3C надаў WebAssembly статут рэкамендаванага стандарту

Кансорцыум W3C абвясціў аб наданні тэхналогіі WebAssembly статуту рэкамендаванага стандарту. WebAssembly падае не які залежыць ад браўзэра ўніверсальны нізкаўзроўневы прамежкавы код для выканання прыкладанняў, скампіляваных з розных моў праграмавання. WebAssembly пазіцыянуецца як больш перспектыўная і пераносная паміж браўзэрамі тэхналогія стварэння высокапрадукцыйных web-прыкладанняў. WebAssembly можа прымяняцца для вырашэння задач, якія патрабуюць высокай вытворчасці, напрыклад, кадавання відэа, апрацоўкі гуку, маніпуляцыі з графікай і 3D, распрацоўкі гульняў, крыптаграфічных аперацый, матэматычных вылічэнняў і стварэння пераносных рэалізацый моў праграмавання.

WebAssembly шмат у чым нагадвае Asm.js, але адрозніваецца тым, што з'яўляецца бінарным фарматам, не завязаным на JavaScript. У WebAssembly не патрабуецца ўжыванне зборшчыка смецця, бо ўжываецца відавочнае кіраванне памяццю. Дзякуючы задзейнічанню JIT для WebAssembly можна дамагчыся ўзроўня прадукцыйнасці блізкага да натыўнага кода. Сярод асноўных задач WebAssembly вылучаецца забеспячэнне пераноснасці, прадказальнасць паводзін і ідэнтычнасці выканання кода на розных платформах. Апошнім часам WebAssembly таксама прасоўваецца у якасці ў універсальнай платформы для бяспечнага выканання кода ў любых інфраструктурах, аперацыйных сістэмах і прыладах, не абмяжоўваючыся браўзэрамі.

W3C стандартаваў тры спецыфікацыі, звязаныя з WebAssembly:

  • Ядро WebAssembly - апісвае нізкаўзроўневую віртуальную машыну для выканання прамежкавага кода WebAssembly. Звязаныя з WebAssembly рэсурсы пастаўляецца ў фармаце ".wasm", які нагадвае файл ".class" у Java і ўтрымоўвальны статычныя дадзеныя і сегменты кода для працы з гэтымі дадзенымі.
  • WebAssembly Web API - вызначае праграмны інтэрфейс на аснове механізму Promise для запыту і выканання рэсурсаў ".wasm". Фармат рэсурсаў WebAssembly аптымізаваны для пачатку выканання не чакаючы поўнай загрузкі файла, што дазваляе павысіць спагадлівасць web-прыкладанняў.
  • WebAssembly JavaScript Interface - дае API для інтэграцыі з JavaScript. Дазваляе атрымліваць значэння і перадаваць параметры ў функцыі WebAssembly. Выкананне WebAssembly адпавядае мадэлі бяспекі JavaScript і ўсё ўзаемадзеянне з асноўнай сістэмай вырабляецца па аналогіі з выкананнем JavaScript-кода.

У будучыні плануецца падрыхтаваць спецыфікацыі для такіх магчымасцяў WebAssembly, як:

  • Шматструменнасць з падзялянай памяццю і атамарным доступам да памяці;
  • Вектарныя аперацыі на аснове SIMD, якія дазваляюць распаралельваць выкананне цыклаў;
  • Эталонныя тыпы для прамых спасылак на аб'екты з кода WebAssembly;
  • Магчымасць выкліку функцый без расходавання дадатковай прасторы ў стэку;
  • Інтэграцыя з модулямі ECMAScript - магчымасць загрузкі кода WebAssembly з JavaScript як модуляў, якія адпавядаюць спецыфікацыі ECMAScript 6;
  • Рэжым працы са зборшчыкам смецця;
  • Адладкавыя інтэрфейсы;
  • ВАСІ (WebAssembly System Interface) - API для прамога ўзаемадзеяння з аперацыйнай сістэмай (POSIX API для працы з файламі, сокетамі і да т.п.).

    Крыніца: opennet.ru

Дадаць каментар