Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
An introduction to WebAssembly
Search
Pine Mizune
July 29, 2016
Programming
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
An introduction to WebAssembly
吉祥寺.pm8 で発表した資料
http://kichijojipm.connpass.com/event/34598/
Pine Mizune
July 29, 2016
More Decks by Pine Mizune
See All by Pine Mizune
多言語対応と絵文字ジェネレーター / i18n of Emoji Generator
pine
0
890
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
2k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
700
Lerna による明示的疎結合アーキテクチャ
pine
1
680
CircleCI 2.0 x JavaScript
pine
3
580
Perl 卒業式
pine
0
380
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
530
Emoji Generator meets Browser Extensions
pine
1
3k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
Introducing Stack Pull Request in GitHub
kkamegawa
0
100
プロポーザルを書いてもらう
pvcresin
0
580
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
500
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
210
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
390
メールのエイリアス機能を履き違えない
isshinfunada
0
250
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
130
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
720
バグを直したら useEffect が消えた
colorful12
3
700
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
150
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
690
A Soul's Torment
seathinner
6
3.5k
How to make the Groovebox
asonas
2
2.3k
Optimizing for Happiness
mojombo
378
71k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
650
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
220
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ʯ ͷ࣮Λൃද ʢ IUUQXXXQVCMJDLFZKQCMPHWGJSFGPYNJDSPTPGU@FEHFXFC
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 σϞ