WebAssembly 2.0 Standart Önizləmə Mövcuddur

W3C, WebAssembly 2.0 ara proqramını və onunla əlaqəli API-ni standartlaşdıran, brauzerlər və aparat platformaları arasında daşına bilən yüksək performanslı proqramların yaradılmasına imkan verən yeni spesifikasiyanın layihəsini dərc etdi. WebAssembly müxtəlif proqramlaşdırma dillərindən tərtib edilmiş proqramları işə salmaq üçün brauzerdən müstəqil, universal, aşağı səviyyəli aralıq kod təqdim edir. WebAssembly üçün JIT istifadə edərək, yerli koda yaxın performans səviyyələrinə nail ola bilərsiniz.

WebAssembly texnologiyası C/C++ kimi tərtib edilmiş dillərdə kod yazılmasına icazə verərək, brauzerdə video kodlaşdırma, audio emal, qrafika və 3D manipulyasiya, oyun inkişafı, kriptoqrafik əməliyyatlar və riyazi hesablamalar kimi yüksək performanslı tapşırıqları yerinə yetirmək üçün istifadə edilə bilər. .

WebAssembly-nin əsas məqsədləri arasında müxtəlif platformalarda daşınma, proqnozlaşdırıla bilən davranış və eyni kodun icrasını təmin etməkdir. Bu yaxınlarda WebAssembly həmçinin brauzerlərlə məhdudlaşmayaraq istənilən infrastruktur, əməliyyat sistemi və cihazda kodun təhlükəsiz icrası üçün universal platforma kimi irəli sürülüb.

W3C WebAssembly 2.0 üçün üç layihə spesifikasiyası dərc etdi:

  • WebAssembly Core - WebAssembly aralıq kodunu işə salmaq üçün aşağı səviyyəli virtual maşını təsvir edir. WebAssembly ilə əlaqəli resurslar Java-dakı ".class" fayllarına bənzər ".wasm" formatında çatdırılır, statik məlumatları və həmin verilənlərlə işləmək üçün kod seqmentlərini ehtiva edir.
  • WebAssembly JavaScript Interface - JavaScript ilə inteqrasiya üçün API təmin edir. Dəyərlər əldə etməyə və parametrləri WebAssembly funksiyalarına ötürməyə imkan verir. WebAssembly-nin icrası JavaScript təhlükəsizlik modelinə uyğundur və əsas sistemlə bütün qarşılıqlı əlaqə JavaScript kodunun icrası ilə eyni şəkildə həyata keçirilir.
  • WebAssembly Web API - ".wasm" resurslarının tələb edilməsi və icrası üçün Promise mexanizmi əsasında proqramlaşdırma interfeysini müəyyən edir. WebAssembly resurs formatı faylın tam yüklənməsini gözləmədən icraya başlamaq üçün optimallaşdırılıb ki, bu da veb proqramların cavab vermə qabiliyyətini artırır.

Standartın ilk versiyası ilə müqayisədə WebAssembly 2.0-da əsas dəyişikliklər:

  • Paralel olaraq birdən çox rəqəmli dəyərlər üzərində hərəkətlər etməyə imkan verən v128 vektor növü və əlaqəli vektor təlimatları üçün dəstək (SIMD, tək təlimat çoxlu məlumat).
  • Dəyişən qlobal dəyişənləri idxal və ixrac etmək bacarığı, C++-da yığın göstəriciləri kimi dəyərlər üçün qlobal bağlanmağa imkan verir.
  • Nəticə daşdıqda istisna atmaq əvəzinə, minimum və ya maksimum mümkün dəyəri qaytaran (SIMD üçün lazım olan) yeni float-a int çevirmə təlimatları.
  • Tam ədədlərin işarəsinin genişləndirilməsi üçün göstərişlər (işarə və dəyəri saxlamaqla ədədin bit dərinliyini artırmaq).
  • Çoxsaylı dəyərləri qaytaran bloklar və funksiyalar üçün dəstək (funksiyalara birdən çox parametr ötürməkdən əlavə).
  • BigInt JavaScript növü və 64 bitlik tam ədədlərin WebAssembly təqdimatı arasında çevirmək üçün BigInt64Array və BigUint64Array JavaScript funksiyalarının həyata keçirilməsi.
  • İstinad növləri üçün dəstək (funcref və externref) və onlarla əlaqəli təlimatlar (select, ref.null, ref.func və ref.is_null).
  • Yaddaş bölgələri arasında məlumatların surətini çıxarmaq və yaddaş bölgələrini təmizləmək üçün Memory.copy, memory.fill, memory.init və data.drop təlimatları.
  • Cədvəllərə birbaşa daxil olmaq və onları dəyişdirmək üçün təlimatlar (table.set, table.get, table.size, table.grow). Bir modulda birdən çox cədvəl yaratmaq, idxal və ixrac etmək imkanı. Toplu rejimdə cədvəllərin surətinin çıxarılması/doldurulması funksiyaları (table.copy, table.init və elem.drop).

Mənbə: opennet.ru

Добавить комментарий