웹어셈블리
(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]
같이 보기
[
編輯
]
參考 文獻
[
編輯
]
- Haas, Andreas; Rossberg, Andreas; Schuff, Derek L.; Titzer, Ben L.; Gohman, Dan; Wagner, Luke; Zakai, Alon; Bastien, JF; Holman, Michael (June 2017).
“Bringing the web up to speed with WebAssembly”
. 《Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation》 (Association for Computing Machinery): 185?200.
doi
:
10.1145/3062341.3062363
.
- Watt, Conrad (2018).
“Mechanising and Verifying the WebAssembly Specification”
(PDF)
. 《ACM SIGPLAN International Conference on Certified Programs and Proofs》 (ACM)
7
.
doi
:
10.1145/3167082
.
內容主
[
編輯
]
- ↑
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]
各州
[
編輯
]
- ↑
“Introduction ? WebAssembly 1.0”
. 《webassembly.github.io》
. 2019年 6月 18日에 確認함
.
WebAssembly is an open standard...
- ↑
“Introduction ? WebAssembly 1.0”
. 《webassembly.github.io》
. 2019年 6月 18日에 確認함
.
WebAssembly is a ... code format
- ↑
“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.
- ↑
“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.
- ↑
“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.
- ↑
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.
- ↑
“Developer’s Guide - WebAssembly”
. 《webassembly.org》
. 2019年 6月 10日에 確認함
.
- ↑
“Compiling a New C/C++ Module to WebAssembly”
. 《MDN Web Docs》 (英語)
. 2019年 6月 10日에 確認함
.
- ↑
“Building to WebAssembly ? Emscripten 1.38.33 documentation”
. 《emscripten.org》
. 2019年 6月 10日에 確認함
.
- ↑
“Emscripting a C library to Wasm | Web”
. 《Google Developers》 (英語)
. 2019年 6月 10日에 確認함
.
- ↑
“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.
- ↑
“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.
- ↑
“js_sys - Rust”
. 《docs.rs》
. 2019年 6月 5日에 確認함
.
Bindings to JavaScript's standard, built-in objects, including their methods and properties.
- ↑
Bright, Peter (2015年 6月 18日).
“The Web is getting its bytecode: WebAssembly”
. 《
Ars Technica
》.
Conde Nast
.
- ↑
“Recent Study Estimates That 50% of Websites Using WebAssembly Apply It for Malicious Purposes”
. 《InfoQ》
. 2019年 11月 3日에 確認함
.
- ↑
“保管된 寫本”
(PDF)
. 2019年 10月 21日에
原本 文書
(PDF)
에서 保存된 文書
. 2019年 11月 9日에 確認함
.
- ↑
“保管된 寫本”
(PDF)
. 2019年 11月 3日에
原本 文書
(PDF)
에서 保存된 文書
. 2019年 11月 9日에 確認함
.
- ↑
“Launch bug”
. 《
GitHub
/ WebAssembly / design》. 2015年 6月 11日.
- ↑
Wagner, Luke (2016年 3月 14日).
“A WebAssembly Milestone: Experimental Support in Multiple Browsers”
. 《Mozilla Hacks》.
- ↑
Thompson, Seth (2016年 3月 15日).
“Experimental support for WebAssembly in V8”
. 《V8 Blog》.
- ↑
Zhu, Limin (2016年 3月 15日).
“Previewing WebAssembly experiments in Microsoft Edge”
. 《Microsoft Edge dev blog》.
- ↑
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日에 確認함
.
- ↑
Avram, Abel (2017年 5月 31日).
“Google Is to Remove Support for PNaCl”
. 《InfoQ》
. 2017年 12月 22日에 確認함
.
- ↑
“WebAssembly: a binary format for the web”
. 《②ality ? JavaScript and more》. 2015年 6月 18日.
데모
[
編輯
]
外部 링크
[
編輯
]
|
---|
|
|
|
|
|
- 別表(*)로 된 部分은 더 以上 開發 中이 아닌 소프트웨어를 意味
|