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 | |
---|---|
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ı |
|
Təsirlənib | asm.js[d], Google Native Client[d] |
Lisenziya | Apache lisenziyası[d] |
webassembly.org | |
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 Dilləri 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 Chrome və Microsoft 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 | 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
- Release 2.0. 2022.
- http://webassembly.org/roadmap/.
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming.
- Mozilla. "Understanding WebAssembly text format". MDN Web Docs (ingilis). 5 February 2022 tarixində . İstifadə tarixi: 9 December 2019.
- "Introduction — WebAssembly 1.0". webassembly.github.io. 22 November 2021 tarixində . İstifadə tarixi: 18 June 2019.
- "Conventions — WebAssembly 1.0". 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.
- "Introduction — WebAssembly 1.1". 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.
- 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:10.1145/3140587.3062363. ISSN 0362-1340.
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.
- "Outside the web: standalone WebAssembly binaries using Emscripten · V8". v8.dev. 2020-07-19 tarixində . İstifadə tarixi: 2020-07-28.
- "Wasmer – The Universal WebAssembly Runtime". 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.
- World Wide Web Consortium. "WebAssembly Core Specification". World Wide Web Consortium (W3). 6 December 2019 tarixində . İstifadə tarixi: 9 December 2019.
- Couriol, Bruno. "WebAssembly 1.0 Becomes a W3C Recommendation and the Fourth Language to Run Natively in Browsers". infoq.com. 25 November 2021 tarixində . İstifadə tarixi: 9 December 2019.
- "WebAssembly Specification — WebAssembly 1.1". webassembly.github.io. 2022-09-22 tarixində . İstifadə tarixi: 2021-03-22.
- "Programming Languages Software Award". www.sigplan.org. 2022-10-29 tarixində . İstifadə tarixi: 2023-11-07.
- Bright, Peter. "The Web is getting its bytecode: WebAssembly". Ars Technica. . 18 June 2015. 11 April 2019 tarixində . İstifadə tarixi: 7 November 2023.
- "New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing". Mozilla (ingilis). 12 November 2019. 10 December 2019 tarixində . İstifadə tarixi: 27 May 2019.
- "Launch bug". GitHub / WebAssembly / design. 11 June 2015. 21 November 2021 tarixində . İstifadə tarixi: 7 November 2023.
- Wagner, Luke. "A WebAssembly Milestone: Experimental Support in Multiple Browsers". Mozilla Hacks. 14 March 2016. 11 August 2017 tarixində . İstifadə tarixi: 7 November 2023.
- Thompson, Seth. "Experimental support for WebAssembly in V8". V8 Blog. 15 March 2016. 9 February 2018 tarixində . İstifadə tarixi: 7 November 2023.
- Zhu, Limin. "Previewing WebAssembly experiments in Microsoft Edge". Microsoft Edge dev blog. 15 March 2016. 18 August 2021 tarixində . İstifadə tarixi: 7 November 2023.
- Lardinois, Frederic. "Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web". TechCrunch (ingilis). 17 June 2015. 17 January 2018 tarixində . İstifadə tarixi: 24 December 2017.
- Avram, Abel. "Google Is to Remove Support for PNaCl". InfoQ. 31 May 2017. 23 December 2017 tarixində . İstifadə tarixi: 22 December 2017.
- "WebAssembly: a binary format for the web". ②ality – JavaScript and more. 18 June 2015. 6 November 2023 tarixində . İstifadə tarixi: 7 November 2023.
- "Staring at the Sun: Dalvik vs. ASM.js vs. Native". 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.
- Arjun, Jangda, Abhinav Powers, Bobby Berger, Emery Guha. Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code. 2019-01-25. OCLC 1106328738.
- Krill, Paul. "WebAssembly is now ready for browsers to use". InfoWorld (ingilis). 6 March 2017. 1 April 2020 tarixində . İstifadə tarixi: 23 December 2017.
- "WebAssembly First Public Working Drafts". W3C. 15 February 2018. 16 July 2021 tarixində . İstifadə tarixi: 20 April 2018.
- "WebAssembly Core Specification". W3C. 15 February 2018. 8 March 2021 tarixində . İstifadə tarixi: 20 April 2018.
- "WebAssembly JavaScript Interface". W3C. 15 February 2018. 30 November 2020 tarixində . İstifadə tarixi: 20 April 2018.
- "WebAssembly Web API". W3C. 15 February 2018. 19 April 2021 tarixində . İstifadə tarixi: 20 April 2018.
- "WebAssembly Worker Based Threads – Chrome Platform Status". chromestatus.com. 2022-02-19 tarixində . İstifadə tarixi: 2022-02-19.
- "WebAssembly Specification — WebAssembly 2.0 (Draft 2022-09-01)". webassembly.github.io. 2022-09-22 tarixində . İstifadə tarixi: 2022-09-09.
- "WebAssembly 2.0 First Public Working Drafts | W3C News" (ingilis). 19 April 2022. 2022-09-09 tarixində . İstifadə tarixi: 2022-09-09.
Xarici keçidlər
- webassembly.org — WebAssembly rəsmi saytı
- W3C Community Group
- WebAssembly Design
- .wasm is WebAssembly Binary File
- "WebAssembly", MDN Web Docs (ingilis) – with info on browser compatibility and specifications (WebAssembly JavaScript API)
wikipedia, oxu, kitab, kitabxana, axtar, tap, meqaleler, kitablar, oyrenmek, wiki, bilgi, tarix, tarixi, endir, indir, yukle, izlə, izle, mobil, telefon ucun, azeri, azəri, azerbaycanca, azərbaycanca, sayt, yüklə, pulsuz, pulsuz yüklə, haqqında, haqqinda, məlumat, melumat, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, şəkil, muisiqi, mahnı, kino, film, kitab, oyun, oyunlar, android, ios, apple, samsung, iphone, pc, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, web, computer, komputer
WebAssembly portativ ikili kod formatini ve calisdirila bilen proqramlar ucun muvafiq metn formatini hemcinin bu cur proqramlar ve onlarin esas muhiti arasinda qarsiliqli elaqeni asanlasdirmaq ucun proqram interfeyslerini teyin eden proqramlasdirma dili WebAssemblyParadiqmalar Strukturlu proqramlasdirmaYaradilma tarixi 2015Muellifler W3CTertibatcilar W3C Mozilla Microsoft Google AppleFayl sonlugu wast ve ya wasmSonuncu versiyasi 2 0Tesirlenib asm js d Google Native Client d Lisenziya Apache lisenziyasi d webassembly org Vikianbarda elaqeli mediafayllar WebAssembly nin esas meqsedi veb sehifelerde yuksek performansli tetbiqleri istifadeye vermekdir lakin o vebe ozel ferziyyeler ireli surmur ve ya vebe ozel xususiyyetler temin etmir ona gore de diger muhitlerde de istifade oluna biler WebAssembly aciq standartdir ve istenilen emeliyyat sisteminde istenilen dili desteklemeyi hedefleyir ve praktikada en populyar dillerin hamisi artiq en azi mueyyen seviyyede desteye malikdir 2015 ci ilde elan edilen ve ilk defe 2017 ci ilin martinda buraxilan WebAssembly 5 dekabr 2019 cu ilde W3C nin tovsiyesi oldu ve 2021 ci ilde ACM in Proqramlasdirma Dilleri Proqrami Mukafati ni qazandi W3C Mozilla Microsoft Google Apple Intel ve sirketlerinin tohfeleri ile standarti idare edir TarixiWebAssembly 1950 ci illere aid bir termin olan assembler dili anlayisini oyandirmaq ucun adlandirilmisdir Adi istifadecinin veb brauzeri vasitesile veb sayt istifadecisinin komputeri terefinden musteri terefinde icra edileceyi assemblere benzer proqramlasdirmanin getirilmesini teklif edir Bunu heyata kecirmek ucun WebAssembly heqiqi assembler dilinden daha cox aparatdan asili olmayan dil olmalidir WebAssembly ilk defe 2015 ci ilde elan edildi ve ilk numayisi Firefox Google Chrome ve Microsoft Edge deUnity nin Angry Bots oyununu calisdira bilmesi idi Evvelki texnologiyalar Mozilla nin i ve idi ve ilk tetbiqi asm js funksiyalar destine esaslanirdi asm js texnologiyasi onsuz da lokal kodun icra suretini temin edir ve WebAssembly i desteklemeyen ve ya tehlukesizlik sebebi ile onu sonduren brauzerler ucun elverisli alternativ hesab edile biler 2017 ci ilin mart ayinda hazira yaxin mehsulun dizayninin tamamlandigi elan edildi ve ilkin test merhelesi basa catdi 2017 ci ilin sentyabr ayinin sonunda Safari 11 WebAssembly desteyi ile birlikde buraxildi 2018 ci ilin fevral ayinda WebAssembly Isci Qrupu Esas Spesifikasiya JavaScript Interfeysi ve Veb API ucun uc ictimai is layihesini derc etdi 2019 cu ilin iyun ayinda Chrome 75 versiyasina defolt olaraq aktivlesdirilmis WebAssembly tredleri funksiyasi elave edildi 2022 ci ilin aprel ayindan WebAssembly 2 0 qaralama statusundadir ki bu da ile elaqeli bir cox telimat ve yeni v128 data tipi funksiyalar ucun coxsayli deyer dondurmek imkani ve kutlevi yaddasin ise salinmasi kopyalanmasi xususiyyetini elave edir NumuneC menbe kodu ve elaqeli WebAssembly kodu C menbe kodu WebAssembly wat metn formati WebAssembly wasm binar formatiint 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 0BIstinadlarRelease 2 0 2022 http webassembly org roadmap https developer mozilla org en US docs Web JavaScript Reference Global Objects WebAssembly instantiateStreaming Mozilla Understanding WebAssembly text format MDN Web Docs ingilis 5 February 2022 tarixinde Istifade tarixi 9 December 2019 Introduction WebAssembly 1 0 webassembly github io 22 November 2021 tarixinde Istifade tarixi 18 June 2019 Conventions WebAssembly 1 0 webassembly github io 6 May 2019 tarixinde Istifade 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 Introduction WebAssembly 1 1 webassembly github io 2021 11 22 tarixinde Istifade 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 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 10 1145 3140587 3062363 ISSN 0362 1340 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 Outside the web standalone WebAssembly binaries using Emscripten V8 v8 dev 2020 07 19 tarixinde Istifade tarixi 2020 07 28 Wasmer The Universal WebAssembly Runtime wasmer io 2021 03 02 tarixinde Istifade tarixi 2021 02 19 Compile everything to WebAssembly Run it on any OS or embed it into other languages World Wide Web Consortium WebAssembly Core Specification World Wide Web Consortium W3 6 December 2019 tarixinde Istifade tarixi 9 December 2019 Couriol Bruno WebAssembly 1 0 Becomes a W3C Recommendation and the Fourth Language to Run Natively in Browsers infoq com 25 November 2021 tarixinde Istifade tarixi 9 December 2019 WebAssembly Specification WebAssembly 1 1 webassembly github io 2022 09 22 tarixinde Istifade tarixi 2021 03 22 Programming Languages Software Award www sigplan org 2022 10 29 tarixinde Istifade tarixi 2023 11 07 Bright Peter The Web is getting its bytecode WebAssembly Ars Technica 18 June 2015 11 April 2019 tarixinde Istifade tarixi 7 November 2023 New Bytecode Alliance Brings the Security Ubiquity and Interoperability of the Web to the World of Pervasive Computing Mozilla ingilis 12 November 2019 10 December 2019 tarixinde Istifade tarixi 27 May 2019 Launch bug GitHub WebAssembly design 11 June 2015 21 November 2021 tarixinde Istifade tarixi 7 November 2023 Wagner Luke A WebAssembly Milestone Experimental Support in Multiple Browsers Mozilla Hacks 14 March 2016 11 August 2017 tarixinde Istifade tarixi 7 November 2023 Thompson Seth Experimental support for WebAssembly in V8 V8 Blog 15 March 2016 9 February 2018 tarixinde Istifade tarixi 7 November 2023 Zhu Limin Previewing WebAssembly experiments in Microsoft Edge Microsoft Edge dev blog 15 March 2016 18 August 2021 tarixinde Istifade tarixi 7 November 2023 Lardinois Frederic Google Microsoft Mozilla And Others Team Up To Launch WebAssembly A New Binary Format For The Web TechCrunch ingilis 17 June 2015 17 January 2018 tarixinde Istifade tarixi 24 December 2017 Avram Abel Google Is to Remove Support for PNaCl InfoQ 31 May 2017 23 December 2017 tarixinde Istifade tarixi 22 December 2017 WebAssembly a binary format for the web ality JavaScript and more 18 June 2015 6 November 2023 tarixinde Istifade tarixi 7 November 2023 Staring at the Sun Dalvik vs ASM js vs Native blog mozilla org August 2013 7 December 2019 tarixinde Istifade 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 Arjun Jangda Abhinav Powers Bobby Berger Emery Guha Not So Fast Analyzing the Performance of WebAssembly vs Native Code 2019 01 25 OCLC 1106328738 Krill Paul WebAssembly is now ready for browsers to use InfoWorld ingilis 6 March 2017 1 April 2020 tarixinde Istifade tarixi 23 December 2017 WebAssembly First Public Working Drafts W3C 15 February 2018 16 July 2021 tarixinde Istifade tarixi 20 April 2018 WebAssembly Core Specification W3C 15 February 2018 8 March 2021 tarixinde Istifade tarixi 20 April 2018 WebAssembly JavaScript Interface W3C 15 February 2018 30 November 2020 tarixinde Istifade tarixi 20 April 2018 WebAssembly Web API W3C 15 February 2018 19 April 2021 tarixinde Istifade tarixi 20 April 2018 WebAssembly Worker Based Threads Chrome Platform Status chromestatus com 2022 02 19 tarixinde Istifade tarixi 2022 02 19 WebAssembly Specification WebAssembly 2 0 Draft 2022 09 01 webassembly github io 2022 09 22 tarixinde Istifade tarixi 2022 09 09 WebAssembly 2 0 First Public Working Drafts W3C News ingilis 19 April 2022 2022 09 09 tarixinde Istifade tarixi 2022 09 09 Xarici kecidlerVikianbarda elaqeli media fayllar webassembly org WebAssembly resmi sayti W3C Community Group WebAssembly Design wasm is WebAssembly Binary File WebAssembly MDN Web Docs ingilis with info on browser compatibility and specifications WebAssembly JavaScript API