Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
An introduction to WebAssembly
Pine Mizune
July 29, 2016
Programming
1
250
An introduction to WebAssembly
吉祥寺.pm8 で発表した資料
http://kichijojipm.connpass.com/event/34598/
Pine Mizune
July 29, 2016
Tweet
Share
More Decks by Pine Mizune
See All by Pine Mizune
多言語対応と絵文字ジェネレーター / i18n of Emoji Generator
pine
0
470
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
950
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
470
Lerna による明示的疎結合アーキテクチャ
pine
1
550
CircleCI 2.0 x JavaScript
pine
3
470
Perl 卒業式
pine
0
280
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
410
Emoji Generator meets Browser Extensions
pine
1
2.7k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.4k
Other Decks in Programming
See All in Programming
Excelの助けを借りて楽にシナリオを作ろう
rpa_niiyama
0
300
Azure Functionsをサクッと開発、サクッとデプロイ/vscodeconf2023-baba
nina01
1
340
Rust、何もわからない...#6発表資料
ryu19
0
130
Form実装基本を学び直してみた
hyugatsukui
0
240
Jetpack Compose 完全に理解した
mkeeda
1
470
Hasura の Relationship と権限管理
karszawa
0
170
%q is for Quine
koic
0
410
Gradle build: The time is now
nonews
1
470
jq at the Shortcuts
cockscomb
1
420
Becoming an Android Librarian (Android World Wide 2023 Jan)
skydoves
1
210
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
7
6.4k
Circuit⚡
monaapk
0
200
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
31
20k
Git: the NoSQL Database
bkeepers
PRO
419
60k
The World Runs on Bad Software
bkeepers
PRO
59
5.7k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
214
12k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1.1M
Optimizing for Happiness
mojombo
365
64k
Building Your Own Lightsaber
phodgson
96
4.9k
Designing with Data
zakiwarfel
91
4.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Imperfection Machines: The Place of Print at Facebook
scottboms
254
12k
Transcript
Pine Mizune Jul 29, 2016 / Kichijoji.pm #8 An introduction
to WebAssembly
1SPGJMF o (JU)VC !QJOF o 5XJUUFS!QJOF o ͖ͳݴޠ +BWB4DSJQU o
ࣄͰॻ͍͍ͯΔݴޠ1FSM+4 o .PCJMF'BDUPSZ *OD
8FC"TTFNCMZ ͱ 8FC"TTFNCMZ ͷ࠷ۙͷಈ 8FC"TTFNCMZ ͷϝϦοτ
8FC"TTFNCMZ ͷར༻ϑϩʔ σϞ 5BCMFPGDPOUFOUT
ϒϥβ͚ ࣮ߦՄೳόΠφϦϑΥʔϚοτ • +BWB4DSJQUͷସͰͳ͍ • --7.ܥݴޠ͔ΒίϯύΠϧՄೳ • $ISPNF'JSFGPY /JHIUMZ Ͱ࣮ࡁΈ
8FC"TTFNCMZͱ C/C++/Rust WebAssembly LLVM compiler
C/C++/Rust WebAssembly Compiler 94͑$$ Ͱڞ௨Մೳ • [MJCD ͳͲಈ͘Α Perl /
XS 1FSMͱΈ߹Θͤͯ͏ͳΒ
n $ISPNFɺ8FC,JUɺ'JSFGPYɺ.JDSPTPGU&EHFɺ--7 .ɺ6OJUZΒ͕αϙʔτΛද໌ IUUQXXXQVCMJDLFZKQCMPHXFCBTTFNCMZIUNM n 7ɺ'JSFGPYɺ.JDSPTPGU&EHF͕ʮ8FC"TTFNCMZʯ ͷ࣮Λൃද ʢ IUUQXXXQVCMJDLFZKQCMPHW
[email protected]
BTTFNCMZXFCIUNM 8FC"TTFNCMZͷ࠷ۙͷಈ
8FC"TTFNCMZ ͷϝϦοτ ߴ࣮ߦͱলϑΝΠϧαΠζ • ϒϥβԋࢉॲཧͷߴԽ ήʔϜ ը૾ॲཧ FUD – ߴ
8FC"TTFNCMZ BTNKT +BWB4DSJQU – ˞BTNKT .P[JMMB։ൃͷ +4ʹ੩తղੳใΛ༩ͨ͠αϒηοτ • సૹϑΝΠϧ༰ྔͷݮ – BTNKT ߴʹ࣮ߦͰ͖Δ͕ϑΝΠϧαΠζ͕ωοΫ – όΠφϦϑΥʔϚοτʹ͢Δ͜ͱͰղܾ
8FC"TTFNCMZ ͷར༻ϑϩʔ ソースコード .ll .s .wast .wasm .c/.cpp LLVM
IR (中間表現) WebAssembly のアセンブラ wasm のテキスト形式 (S式) wast をシリアライズしたもの
8FC"TTFNCMZ XBTU ܗࣜྫ (module (memory 1 (segment 8 "¥00¥00¥00¥00") )
(export "memory" memory) (export "count" $count) (func $count (result i32) (local $$0 i32) (i32.store offset=8 (i32.const 0) (i32.add (set_local $$0
8FC"TTFNCMZ ͷར༻ϑϩʔ ソースコード .ll .s .wast .wasm .c/.cpp wast
をシリアライズしたもの ★ 簡単に試すなら Emscripten がオススメ
QJOFNEXBTNFYBNQMF IUUQTHJUIVCDPNQJOFNEXBTNFYBNQMF σϞ