WebAssembly — portativ ikili kod formatını və çalışdırıla bilən proqramlar üçün müvafiq mətn formatını, həmçinin bu cür proqramlar və onların əsas mühiti arasında qarşılıqlı əlaqəni asanlaşdırmaq üçün proqram interfeyslərini təyin edən proqramlaşdırma dili.

WebAssembly
Loqonun şəkli
Paradiqmalar Strukturlu proqramlaşdırma
Yaradılma tarixi 2015
Müəlliflər W3C
Tərtibatçılar W3C, Mozilla, Microsoft, Google, Apple
Fayl sonluğu .wast və ya .wasm
Sonuncu versiyası
  • 2.0
Təsirlənib asm.js[d], Google Native Client[d]
Lisenziya Apache lisenziyası[d]
Vikianbarın loqosu Vikianbarda əlaqəli mediafayllar

WebAssembly-nin əsas məqsədi veb səhifələrdə yüksək performanslı tətbiqləri istifadəyə verməkdir, lakin o, vebə özəl fərziyyələr irəli sürmür və ya vebə özəl xüsusiyyətlər təmin etmir, ona görə də digər mühitlərdə də istifadə oluna bilər. WebAssembly açıq standartdır və istənilən əməliyyat sistemində istənilən dili dəstəkləməyi hədəfləyir və praktikada ən populyar dillərin hamısı artıq ən azı müəyyən səviyyədə dəstəyə malikdir.

2015-ci ildə elan edilən və ilk dəfə 2017-ci ilin martında buraxılan WebAssembly 5 dekabr 2019-cu ildə W3C-nin tövsiyəsi oldu və 2021-ci ildə ACM -ın "Proqramlaşdırma i Proqramı Mükafatı"nı qazandı.W3C Mozilla, Microsoft, Google, Apple, , Intel və şirkətlərinin töhfələri ilə standartı idarə edir.

Tarixi

WebAssembly, 1950-ci illərə aid bir termin olan assembler dili anlayışını oyandırmaq üçün adlandırılmışdır. Adı, istifadəçinin veb-brauzeri vasitəsilə veb-sayt istifadəçisinin kompüteri tərəfindən müştəri tərəfində icra ediləcəyi assemblerə bənzər proqramlaşdırmanın gətirilməsini təklif edir. Bunu həyata keçirmək üçün WebAssembly həqiqi assembler dilindən daha çox aparatdan asılı olmayan dil olmalıdır.

WebAssembly ilk dəfə 2015-ci ildə elan edildi və ilk nümayişi Firefox,Google ChromeMicrosoft Edge-dəUnity-nin "Angry Bots" oyununu çalışdıra bilməsi idi. Əvvəlki texnologiyalar Mozilla-nın -i və idi və ilk tətbiqi asm.js funksiyalar dəstinə əsaslanırdı. asm.js texnologiyası onsuz da lokal kodun icra sürətini təmin edir və WebAssembly-i dəstəkləməyən və ya təhlükəsizlik səbəbi ilə onu söndürən brauzerlər üçün əlverişli alternativ hesab edilə bilər.

2017-ci ilin mart ayında hazıra yaxın məhsulun dizaynının tamamlandığı elan edildi və ilkin test mərhələsi başa çatdı. 2017-ci ilin sentyabr ayının sonunda Safari 11 WebAssembly dəstəyi ilə birlikdə buraxıldı. 2018-ci ilin fevral ayında WebAssembly İşçi Qrupu Əsas Spesifikasiya, JavaScript İnterfeysi və Veb API üçün üç ictimai iş layihəsini dərc etdi.

2019-cu ilin iyun ayında Chrome 75 versiyasına defolt olaraq aktivləşdirilmiş WebAssembly tredləri funksiyası əlavə edildi.

2022-ci ilin aprel ayından WebAssembly 2.0 qaralama statusundadır ki, bu da ilə əlaqəli bir çox təlimat və yeni v128 data tipi, funksiyalar üçün çoxsaylı dəyər döndürmək imkanı və kütləvi yaddaşın işə salınması/kopyalanması xüsusiyyətini əlavə edir.

Nümunə

C mənbə kodu və əlaqəli WebAssembly kodu
C mənbə kodu WebAssembly .wat mətn formatı WebAssembly .wasm binar formatı
int factorial(int n) {
  if (n == 0)
    return 1;
  else
    return n * factorial(n-1);
}
(func (param i64) (result i64)
  local.get 0
  i64.eqz
  if (result i64)
      i64.const 1
  else
      local.get 0
      local.get 0
      i64.const 1
      i64.sub
      call 0
      i64.mul
  end)
00 61 73 6D 01 00 00 00
01 06 01 60 01 7E 01 7E
03 02 01 00
0A 17 01
15 00
20 00
50
04 7E
42 01
05
20 00
20 00
42 01
7D
10 00
7E
0B
0B

İstinadlar

  1. . 2022.
  2. .
  3. .
  4. Mozilla. . MDN Web Docs (ingilis). 5 February 2022 tarixində . İstifadə tarixi: 9 December 2019.
  5. . webassembly.github.io. 22 November 2021 tarixində . İstifadə tarixi: 18 June 2019.
  6. . webassembly.github.io. 6 May 2019 tarixində . İstifadə tarixi: 17 May 2019. WebAssembly is a programming language that has multiple concrete representations (its binary format and the text format). Both map to a common structure.
  7. . webassembly.github.io. 2021-11-22 tarixində . İstifadə tarixi: 2021-02-19. Its main goal is to enable high performance applications on the Web, but it does not make any Web-specific assumptions or provide Web-specific features, so it can be employed in other environments as well.
  8. Haas, Andreas; Rossberg, Andreas; Schuff, Derek L.; Titzer, Ben L.; Holman, Michael; Gohman, Dan; Wagner, Luke; Zakai, Alon; Bastien, JF. "Bringing the Web Up to Speed with WebAssembly". SIGPLAN Notices. 52 (6). 14 June 2017: 185–200. doi:. ISSN . While the Web is the primary motivation for WebAssembly, nothing in its design depends on the Web or a JavaScript environment. It is an open standard specifically designed for embedding in multiple contexts, and we expect that stand-alone implementations will become available in the future.
  9. . v8.dev. 2020-07-19 tarixində . İstifadə tarixi: 2020-07-28.
  10. . wasmer.io. 2021-03-02 tarixində . İstifadə tarixi: 2021-02-19. Compile everything to WebAssembly. Run it on any OS or embed it into other languages.
  11. World Wide Web Consortium. . World Wide Web Consortium (W3). 6 December 2019 tarixində . İstifadə tarixi: 9 December 2019.
  12. Couriol, Bruno. . infoq.com. 25 November 2021 tarixində . İstifadə tarixi: 9 December 2019.
  13. . webassembly.github.io. 2022-09-22 tarixində . İstifadə tarixi: 2021-03-22.
  14. . www.sigplan.org. 2022-10-29 tarixində . İstifadə tarixi: 2023-11-07.
  15. Bright, Peter. . Ars Technica. . 18 June 2015. 11 April 2019 tarixində . İstifadə tarixi: 7 November 2023.
  16. . Mozilla (ingilis). 12 November 2019. 10 December 2019 tarixində . İstifadə tarixi: 27 May 2019.
  17. . GitHub / WebAssembly / design. 11 June 2015. 21 November 2021 tarixində . İstifadə tarixi: 7 November 2023.
  18. Wagner, Luke. . Mozilla Hacks. 14 March 2016. 11 August 2017 tarixində . İstifadə tarixi: 7 November 2023.
  19. Thompson, Seth. . V8 Blog. 15 March 2016. 9 February 2018 tarixində . İstifadə tarixi: 7 November 2023.
  20. Zhu, Limin. . Microsoft Edge dev blog. 15 March 2016. 18 August 2021 tarixində . İstifadə tarixi: 7 November 2023.
  21. Lardinois, Frederic. . TechCrunch (ingilis). 17 June 2015. 17 January 2018 tarixində . İstifadə tarixi: 24 December 2017.
  22. Avram, Abel. . InfoQ. 31 May 2017. 23 December 2017 tarixində . İstifadə tarixi: 22 December 2017.
  23. . ②ality – JavaScript and more. 18 June 2015. 6 November 2023 tarixində . İstifadə tarixi: 7 November 2023.
  24. . blog.mozilla.org. August 2013. 7 December 2019 tarixində . İstifadə tarixi: 7 December 2019. Even discarding the one score where asm.js did better, it executes at around 70% of the speed of native C++ code.
  25. Arjun, Jangda, Abhinav Powers, Bobby Berger, Emery Guha. . 2019-01-25. OCLC .
  26. Krill, Paul. . InfoWorld (ingilis). 6 March 2017. 1 April 2020 tarixində . İstifadə tarixi: 23 December 2017.
  27. . W3C. 15 February 2018. 16 July 2021 tarixində . İstifadə tarixi: 20 April 2018.
  28. . W3C. 15 February 2018. 8 March 2021 tarixində . İstifadə tarixi: 20 April 2018.
  29. . W3C. 15 February 2018. 30 November 2020 tarixində . İstifadə tarixi: 20 April 2018.
  30. . W3C. 15 February 2018. 19 April 2021 tarixində . İstifadə tarixi: 20 April 2018.
  31. . chromestatus.com. 2022-02-19 tarixində . İstifadə tarixi: 2022-02-19.
  32. . webassembly.github.io. 2022-09-22 tarixində . İstifadə tarixi: 2022-09-09.
  33. (ingilis). 19 April 2022. 2022-09-09 tarixində . İstifadə tarixi: 2022-09-09.

Xarici keçidlər

  • — Rəsmi saytı
  • , MDN Web Docs (ingilis) – with info on browser compatibility and specifications (WebAssembly JavaScript API)
Mənbə — ""

Informasiya Melumat Axtar

Anarim.Az

Sayt Rehberliyi ile Elaqe

Saytdan Istifade Qaydalari

Anarim.Az 2004-2023