Слайд 2Какво представлява WebAssembly
Виртуална машина за изпълнение на софтуер
Формат за изпълними файлове
Набор от
![Какво представлява WebAssembly Виртуална машина за изпълнение на софтуер Формат за изпълними](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-1.jpg)
инструменти за компилация, свързване, дебъгване и профилиране
Отворен уеб стандарт
Слайд 3Какво НЕ е WebAssembly
WebAssembly не е стандартна библиотека
WebAssembly не изисква наличието на
![Какво НЕ е WebAssembly WebAssembly не е стандартна библиотека WebAssembly не изисква](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-2.jpg)
JavaScript интерпретатор и не заивиси от JavaScript по някакъв начин
WebAssembly не е обвързан по никакъв начин с конкретна хардуерна платформа
WebAssembly не е изцяло и само предназначен за изпълнение в браузър
Слайд 4Подобни на WebAssembly виртуални машини
По предназначение WebAssembly наподобява JVM
Въпреки това поддържа операции
![Подобни на WebAssembly виртуални машини По предназначение WebAssembly наподобява JVM Въпреки това](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-3.jpg)
на по-ниско ниво от JVM
Има съществени разлики с JVM архитектурата
Всъщност WebAssembly се приближава повече до LLVM като архитектура
Даже можем с право да го наричаме LLVM за уеб
Слайд 5Предимства на WebAssembly
Преносимост (може да се изпълнява на различни платформи)
Оптимизиран откъм размер
![Предимства на WebAssembly Преносимост (може да се изпълнява на различни платформи) Оптимизиран](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-4.jpg)
на изпълнимите файлове, както и откъм времето им на зареждане и изпълнение
Поддържа се във всички популярни уеб браузъри (с малко допълнителни настройки)
Поддържа вграждане в софтуер, който не е ориентиран към уеб
Слайд 6WebAssembly е ефикасен
Стекова виртуална машина
Силно оптимизиран бинарен формат за изпълними файлове
Скорост на
![WebAssembly е ефикасен Стекова виртуална машина Силно оптимизиран бинарен формат за изпълними](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-5.jpg)
изпълнение, сходна с тази на native софтуера
Постига над 20-кратно ускорение спрямо JavaScript в бразуъра
Възползва се от възможностите на хардуера на хост машината
Поддръжка за SIMD инструкции (в бъдеще)
Слайд 7WebAssembly е сигурен
Програмите се изпълняват в изолирана защитена среда (sandbox)
Достъпът до паметта
![WebAssembly е сигурен Програмите се изпълняват в изолирана защитена среда (sandbox) Достъпът](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-6.jpg)
е гарантирано безопасен
Няма NULL pointer изключения
Нвеъзможно е да се извърши buffer overflow атака
Следва се same-origin правилото
Следва се моделът за сигурност в уеб като цяло
Слайд 8WebAssembly е отворен
Той включва само спецификация
Все пак има свободна имплементация по подразбиране
Консистентност
![WebAssembly е отворен Той включва само спецификация Все пак има свободна имплементация](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-7.jpg)
между различните браузъри
Дебъгването и тестването е улеснено от текстовия формат, който е human-readable и може да се достъпи чрез View Source командата в браузъра
Слайд 9WebAssembly е част от уеб платформата
Отворен W3C стандарт
Имплементациите поддържат стандартните уеб интерфейси
![WebAssembly е част от уеб платформата Отворен W3C стандарт Имплементациите поддържат стандартните](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-8.jpg)
(т.е. браузърските обекти в Javascript)
Спецификацията няма конкретни версии, което отразява точно същността на уеб екосистемата
Изграден с идеята за обратна съвместимост
Слайд 10Ресурси
Уебсайт: http://webassembly.org
GitHub: https://github.com/WebAssembly
Community Group на W3C: https://www.w3.org/community/webassembly/
Примерна имплементация: https://github.com/WebAssembly/spec
![Ресурси Уебсайт: http://webassembly.org GitHub: https://github.com/WebAssembly Community Group на W3C: https://www.w3.org/community/webassembly/ Примерна имплементация: https://github.com/WebAssembly/spec](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/958829/slide-9.jpg)