WebAssembly

O DIPLOMOVEJ PRÁCI

NÁZOV WebAssembly
AUTOR Bc. Klaudia Garajová
ŠKOLITEĽ Mgr. Pavel Petrovič, PhD.

ANOTÁCIA

Webassembly je assembler pre webový prehliadač. Dajú sa do neho kompilovať rôzne jazyky, pozri napríklad prehľad v [1]. Napriek tomu zostávajú aplikácie vo webovom prehliadači v štýle udalosťami riadeného programovania, zatiaľ čo pre mnohé iné jazyky platia iné paradigmy. Webassembly je alternatívou k inak jedinému podporovanému jazyku v prehliadačoch - Javascriptu, ktorý je interpretovaný a preto nie veľmi primeraný pre aplikácie, ktoré sú závislé na vysokej efektívnosti a výkone.

CIEĽ

Cieľom tejto práce je vykonať dôkladnú analýzu technológie Webassembly, prakticky vyskúšať rozličné jazyky, ktoré sú kompilovateľné do Webassembly a och kompilátory, analyzovať ich výhody a obmedzenia a charakterizovať ich vo vzájomnom porovnaní. Okrem toho študent navrhne jednoduchý jazyk, ktorý bude kompilovaný do Webassembly a jeho programy budú bežať vo webových prehliadačoch. Ide teda prevažne o prehľadovú prácu nasledovanú praktickým originálnym implementačným projektom.

DENNÍK - ZIMNÝ SEMESTER

týždeň 18.9-24.9 skúmanie nových experimentálnych Wasm doplnkov
SIMD, vektorové inštrukcie
týždeň 25.9-1.10 optimalizácia wasm a js príkladu
vytvorenie grafov na porovnanie
týždeň 2.10-8.10 detailné preskúmanie JWebassemly kompilátora
lúštenie vygenerovaných wasm súborov
týždeň 9.10-15.10 rozbehanie TeaVM kompilátora
praktické príklady, lúštenie vygenerovaných wasm súborov
týždeň 16.10-22.10 rozbehanie CheerpJ
praktické pokusy
týždeň 23.10-29.10 rozbehanie Cheerp
praktické príklady
týždeň 30.10-5.11 detailné preskúmanie Emscripten
wasm kódy
týždeň 6.11-12.11 skúmanie možností na vytvorenie jazyka
písanie práce
týždeň 13.11-19.11 skúmanie ANTLR4
zamyslenie sa nad jazykom a doménou
písanie práce
týždeň 20.11-26.11 skúmanie Binaryen
návrh jazyka
písanie práce
týždeň 27.11-3.12 vytvorenie jednoduchého aritmetického jazyka
doladenie jazyka
písanie práce
týždeň 4.12-10.12 vytvorenie prezentácie
písanie práce

DENNÍK - LETNÝ SEMESTER

týždeň 13.2-19.2 získanie základných informácii o WebAssembly
vytvorenie webstránky k DP
týždeň 20.2-26.2 skúmanie Wasm
základná Wat syntax, modul, dátové typy, premenné, funkcie...
týždeň 27.2-5.3 skúmanie Wasm
prepojenie s JavaScriptom, DOM
týždeň 6.3-12.3 skúmanie Wasm
lineárna pamäť, canvas
týždeň 13.3-19.3 skúmanie Wasm
thready, Web Workers
týždeň 20.3-26.3 vytvorenie komplexnejšieho príkladu vo Wat
porovnanie s JavaScript verziou
týždeň 27.3-2.4 optimalizácia príkladu
porovnanie s JavaSript verziou
týždeň 3.4-9.4 prehľad kompilátorov do Wasm
týždeň 10.4-16.4 Pyodide
rozbehanie a praktické príklady
týždeň 17.4-23.4 JWebAssembly
rozbehanie a praktické príklady
týždeň 24.4-30.4 Emscripten
rozbehanie a praktické príklady
týždeň 1.5-7.5 skúmanie možností na vytvorenie jednoduchého jazyka,
ktorý bude kompilovaný do Wasm
týždeň 8.5-14.5 vytvorenie prezentácie
vytvorenie kostry DP

PLÁN

december kompilátory, novinky
január + február implementácia jazyka + debug
marec + apríl kompilátory, wasm, novinky, písanie práce
máj písanie práce + odovzdanie

LITERATÚRA

KONTAKT