ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ W3C ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° WebAssembly Π½Π° ΡΡΠ°ΡΡΡ Π½Π° ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡ. WebAssembly ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ Π±ΡΠ°ΡΠ·ΡΡΠ°, ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. WebAssembly ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ° ΠΊΠ°ΡΠΎ ΠΏΠΎ-ΠΎΠ±Π΅ΡΠ°Π²Π°ΡΠ° ΠΈ ΠΊΡΠΎΡΠ±ΡΠ°ΡΠ·ΡΡΠ½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. WebAssembly ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠ°ΡΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, Π°ΡΠ΄ΠΈΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ 3D ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ³ΡΠΈ, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅.
WebAssembly Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π½Π° Asm.js, Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΏΠΎ ΡΠΎΠ²Π°, ΡΠ΅ Π΅ Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ ΠΎΠ±Π²ΡΡΠ·Π°Π½ Ρ JavaScript. WebAssembly Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° ΠΎΡΠΏΠ°Π΄ΡΡΠΈ, Π·Π°ΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ JIT Π·Π° WebAssembly, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ Π½ΠΈΠ²Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ΄. Π‘ΡΠ΅Π΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈ Π½Π° WebAssembly Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ, ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΡΠΊ WebAssembly ΡΡΡΠΎ ΠΈΠΌΠ° ΠΊΠ°ΡΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π²ΡΠ² Π²ΡΡΠΊΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΄ΠΎ Π±ΡΠ°ΡΠ·ΡΡΠΈ.
W3C ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ° ΡΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ WebAssembly:
- β ΠΎΠΏΠΈΡΠ²Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΎΡ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° WebAssembly. Π Π΅ΡΡΡΡΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ WebAssembly, ΠΈΠ΄Π²Π°Ρ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ".wasm", ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° ΡΠ°ΠΉΠ» ".class" Π½Π° Java, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
- β Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Promise Π·Π° Π·Π°ΡΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° β.wasmβ ΡΠ΅ΡΡΡΡΠΈ. Π€ΠΎΡΠΌΠ°ΡΡΡ Π½Π° ΡΠ΅ΡΡΡΡΠ° WebAssembly Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΡΠ°ΠΊΠ° ΡΠ°ΠΉΠ»ΡΡ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π·Π°ΡΠ΅Π΄Π΅Π½, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°.
- β ΠΡΠΈΠ³ΡΡΡΠ²Π° API Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ JavaScript. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° WebAssembly. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° WebAssembly ΡΠ»Π΅Π΄Π²Π° ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° JavaScript ΠΈ ΡΡΠ»ΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° JavaScript ΠΊΠΎΠ΄.
Π Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° WebAssembly ΠΊΠ°ΡΠΎ:
- ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡ ΡΡΡ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π°ΡΠΎΠΌΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ°;
- ΠΠ΅ΠΊΡΠΎΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° SIMD, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠΊΡΠ»Π°;
- Π Π΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΠΎΡ ΠΊΠΎΠ΄ Π½Π° WebAssembly;
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π΅Π»Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΌΡΡΡΠΎ Π² ΡΡΠ΅ΠΊΠ°;
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ECMAScript ΠΌΠΎΠ΄ΡΠ»ΠΈ β Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° WebAssembly ΠΊΠΎΠ΄ ΠΎΡ JavaScript ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ECMAScript 6 ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ°;
- Π Π΅ΠΆΠΈΠΌ ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ;
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ;
- (WebAssembly System Interface) - API Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° (POSIX API Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ Π΄Ρ.).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
