W3C Konsorsiumu WebAssembly texnologiyasına tövsiyə olunan standart statusunun verilməsi ilə bağlı. WebAssembly, müxtəlif proqramlaşdırma dillərindən tərtib olunmuş tətbiqlərin icrası üçün müstəqil brauzerdən istifadə edən universal aşağı səviyyəli vasitə kodu təqdim edir. WebAssembly, yüksək performanslı web-tətbiqlərin yaradılması üçün daha perspektivli və brauzerlər arasında köçürülə bilən bir texnologiya kimi təqdim olunur. WebAssembly, video kodlaşdırma, səs işləmə, qrafika və 3D ilə manipulyasiya, oyun inkişafı, kriptoqrafik əməliyyatlar, riyazi hesablamalar və proqramlaşdırma dillərinin köçürülmüş tətbiqlərinin yaradılması kimi yüksək performans tələb edən tapşırıqları həll etmək üçün istifadə oluna bilər.
WebAssembly, Asm.js-ə çox bənzəyir, lakin JavaScript-dən asılı olmayan ikili formatdır. WebAssembly-də tullantı toplayıcıdan istifadə edilmir, çünki yaddaşın açıq idarəsi tətbiq edilir. JIT istifadəsi sayəsində WebAssembly, yerli koda yaxın performans səviyyəsinə nail olmağa imkan verir. WebAssembly-nin əsas məqsədləri arasında köçürülmə qabiliyyətini, davranışın proqnozlaşdırılmasını və müxtəlif platformalarda kodun icra identikliyini təmin etmək yer alır. Son dövrlərdə WebAssembly də bütün infrastruktur, əməliyyat sistemləri və cihazlarda, yalnız brauzerlərlə məhdudlaşmadan təhlükəsiz kodun icrası üçün universal platforma kimi.
W3C, WebAssembly ilə əlaqəli üç spesifikasiyanı standartlaşdırıb:
- — WebAssembly vasitə kodunu icra etmək üçün aşağı səviyyəli virtual maşını təsvir edir. WebAssembly ilə əlaqəli resurslar «.wasm» formatında təqdim olunur ki, bu da Java-da «.class» faylına bənzəyir və bu məlumatlarla işləmək üçün statik məlumatlar və kod seqmentlərini ehtiva edir.
- — «.wasm» resurslarını sorğu və icra etmək üçün Promise mexanizmi əsasında proqram interfeysini müəyyən edir. WebAssembly resurs formatı, faylın tam yüklənməsini gözləmədən icra edilməyə optimallaşdırıldığından, web-tətbiqlərin cavabdehliyini artırmaq imkanı verir.
- — JavaScript ilə inteqrasiya üçün API təqdim edir. WebAssembly funksiyalarına dəyərlər əldə etmək və parametr keçirmək imkanını yaradır. WebAssembly-nin icrası JavaScript-in təhlükəsizlik modelinə uyğun gəlir və əsas sistemlə bütün qarşılıqlı əlaqə, JavaScript kodunun icrası ilə analoji olaraq həyata keçirilir.
Gələcəkdə WebAssembly üçün aşağıdakı imkanların spesifikasiyalarının hazırlanması planlaşdırılır:
- Paylaşılan yaddaşla çoxişləməli işləmə və atomik yaddaş girişləri;
- SIMD-a əsaslanan vektor əməliyyatları, dövrlərin icrasını paralel işləməyə imkan tanıyır;
- WebAssembly kodundan obyektlərə birbaşa bağlantılar üçün standart tiplər;
- Əlavə yerdən istifadə etmədən funksiyaların çağırılması imkanı;
- ECMAScript modulları ilə inteqrasiya – JavaScript-dən WebAssembly kodunu ECMAScript 6 spesifikasiyasına uyğun modullar kimi yükləmək imkanı.
- Zibil toplayan icra rejimi;
- Debugging interfeysləri;
- (WebAssembly Sistem İndeksi) – fayllarla, soketlərlə və s. işləmək üçün POSIX API vasitəsilə əməliyyat sistemi ilə birbaşa əlaqə yaratmaq üçün API.
Mənbə: opennet.ru
