한국   대만   중국   일본 
웹어셈블리 - 위키百科, 우리 모두의 百科事典 本文으로 移動

웹어셈블리

위키百科, 우리 모두의 百科事典.

웹어셈블리
패러다임 命令形 , 構造的 , 式 志向
設計者 W3C
開發者
發表日 2017年 3月 (7年 前) ( 2017-03 )
資料型 體系 政敵
라이선스 아파치 라이선스
파일 擴張字
  • .wat
  • .wasm
웹사이트 webassembly .org
影響을 받은 言語

웹어셈블리 (WebAssembly, 簡單히 Wasm )는 實行 프로그램 및 그와 一致하는 텍스트 어셈블리어 , 그리고 이러한 프로그램과 호스트 環境 間 通信을 용이케하는 인터페이스를 爲한 移植 可能한 李瑱 코드 포맷을 定義하는 開放形 標準 이다. [1] [2] [3] [4] 웹어셈블리의 主 目的은 웹 페이지 에서 高性能의 애플리케이션을 可能케 하는 것이지만 포맷은 다른 環境에서도 實行 및 연동되도록 設計되어 있다. [5] [6]

Wasm은 자바스크립트 를 代替하지는 않는다. 브라우저에서 Wasm을 使用하려면 使用者는 Emscripten SDK 를 使用하여 C++(또는 D 또는 러스트 等의 其他 LLVM 支援 言語) 소스 코드를 李瑱 파일로 컴파일한 다음 同一한 샌드박스 에서 一般 자바스크립트 코드로 實行할 수 있다. [note 1] Emscripten은 WebGL 等 흔히 使用되는 여러 環境 인터페이스들의 바인딩을 提供한다. 擴張 可能한 메모리와 수많은 스케일러 값에만 接近이 可能하다. 文書 客體 모델 (DOM) 直接 接近은 하지 않으나 이를 위한 프록시 函數를 만들 수 있다. (例를 들면 stdweb, [11] web_sys, [12] , js_sys을 通해) [13]

W3C 모질라 , 마이크로소프트 , 구글 , 애플 의 寄與와 함께 標準을 管理하고 있다. [14]

2019年 6月 Technische Universitat Braunschweig의 硏究에 따르면 알렉사 最上位 100萬 個의 웹사이트에서의 웹어셈블리 使用率 分析 結果 가장 顯著하게 使用되고 있는 部分은 惡性 假想 貨幣 採掘 이었음이 드러났다. [15] [16] [17]

歷史 [ 編輯 ]

웹어셈블리는 2015年 처음 發表되었으며, [18] 첫 詩聯은 유니티 의 앵그리 봇(Angry Bots)을 모질라 파이어폭스 [19] 구글 크롬 , [20] 마이크로소프트 엣지 에서 實行하는 것이었다. [21] 先導資格 技術은 모질라 , 구글 네이티브 클라이언트 Asm.js 이었으며 [22] [23] 最初 具現體는 asm.js의 機能 集合에 基盤을 두었다. [24]

같이 보기 [ 編輯 ]

參考 文獻 [ 編輯 ]

內容主 [ 編輯 ]

  1. According to official documentation the Emscripten SDK may be used to create .wasm files which then may be executed in web browser. [7] [8] [9] Emscripten이 클랭 使用 時 다양한 言語를 使用할 수 있으나 一部 問題가 發生할 수 있다. [10]

各州 [ 編輯 ]

  1. “Introduction ? WebAssembly 1.0” . 《webassembly.github.io》 . 2019年 6月 18日에 確認함 . WebAssembly is an open standard...  
  2. “Introduction ? WebAssembly 1.0” . 《webassembly.github.io》 . 2019年 6月 18日에 確認함 . WebAssembly is a ... code format  
  3. “Conventions ? WebAssembly 1.0” . 《webassembly.github.io》 . 2019年 5月 17日에 確認함 . WebAssembly is a programming language that has multiple concrete representations (its binary format and the text format). Both map to a common structure.  
  4. “Introduction ? WebAssembly 1.0” . 《webassembly.github.io》 . 2019年 6月 18日에 確認함 . ... this specification is complemented by additional documents defining interfaces to specific embedding environments such as the Web. These will each define a WebAssembly application programming interface (API) suitable for a given environment.  
  5. “WebAssembly Specification Release 1.0 (Draft, last updated Apr 16, 2019): Introduction” . 《webassembly.org》 . 2019年 5月 6日에 確認함 . 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.  
  6. Haas, Andreas; Rossberg, Andreas; Schuff, Derek L.; Titzer, Ben L.; Holman, Michael; Gohman, Dan; Wagner, Luke; Zakai, Alon; Bastien, JF (2017年 6月 14日). “Bringing the Web Up to Speed with WebAssembly” . 《SIGPLAN Notices》 52 (6): 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.  
  7. “Developer’s Guide - WebAssembly” . 《webassembly.org》 . 2019年 6月 10日에 確認함 .  
  8. “Compiling a New C/C++ Module to WebAssembly” . 《MDN Web Docs》 (英語) . 2019年 6月 10日에 確認함 .  
  9. “Building to WebAssembly ? Emscripten 1.38.33 documentation” . 《emscripten.org》 . 2019年 6月 10日에 確認함 .  
  10. “Emscripting a C library to Wasm | Web” . 《Google Developers》 (英語) . 2019年 6月 10日에 確認함 .  
  11. “stdweb - Rust” . 《docs.rs》 . 2019年 6月 5日에 確認함 . The goal of this crate is to provide Rust bindings to the Web APIs and to allow a high degree of interoperability between Rust and JavaScript.  
  12. “web_sys - Rust” . 《docs.rs》 . 2019年 6月 5日에 確認함 . Raw API bindings for Web APIs. This is a procedurally generated crate from browser WebIDL which provides a binding to all APIs that browser provide on the web.  
  13. “js_sys - Rust” . 《docs.rs》 . 2019年 6月 5日에 確認함 . Bindings to JavaScript's standard, built-in objects, including their methods and properties.  
  14. Bright, Peter (2015年 6月 18日). “The Web is getting its bytecode: WebAssembly” . 《 Ars Technica 》. Conde Nast .  
  15. “Recent Study Estimates That 50% of Websites Using WebAssembly Apply It for Malicious Purposes” . 《InfoQ》 . 2019年 11月 3日에 確認함 .  
  16. “保管된 寫本” (PDF) . 2019年 10月 21日에 原本 文書 (PDF) 에서 保存된 文書 . 2019年 11月 9日에 確認함 .  
  17. “保管된 寫本” (PDF) . 2019年 11月 3日에 原本 文書 (PDF) 에서 保存된 文書 . 2019年 11月 9日에 確認함 .  
  18. “Launch bug” . 《 GitHub / WebAssembly / design》. 2015年 6月 11日.  
  19. Wagner, Luke (2016年 3月 14日). “A WebAssembly Milestone: Experimental Support in Multiple Browsers” . 《Mozilla Hacks》.  
  20. Thompson, Seth (2016年 3月 15日). “Experimental support for WebAssembly in V8” . 《V8 Blog》.  
  21. Zhu, Limin (2016年 3月 15日). “Previewing WebAssembly experiments in Microsoft Edge” . 《Microsoft Edge dev blog》.  
  22. Lardinois, Frederic (2015年 6月 17日). “Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web” . 《TechCrunch》 (英語) . 2017年 12月 24日에 確認함 .  
  23. Avram, Abel (2017年 5月 31日). “Google Is to Remove Support for PNaCl” . 《InfoQ》 . 2017年 12月 22日에 確認함 .  
  24. “WebAssembly: a binary format for the web” . 《②ality ? JavaScript and more》. 2015年 6月 18日.  

데모 [ 編輯 ]

外部 링크 [ 編輯 ]