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
1
260
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
750
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
1.6k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
640
Lerna による明示的疎結合アーキテクチャ
pine
1
620
CircleCI 2.0 x JavaScript
pine
3
530
Perl 卒業式
pine
0
320
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
480
Emoji Generator meets Browser Extensions
pine
1
2.9k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
ソフトウェアエンジニアの成長
masuda220
PRO
12
2.2k
読まないコードリーディング術
hisaju
0
110
Ça bouge du côté des animations CSS !
goetter
2
160
オレを救った Cline を紹介する
codehex
13
12k
楽しく向き合う例外対応
okutsu
0
730
AIプログラミング雑キャッチアップ
yuheinakasaka
19
5.1k
CloudNativePGを布教したい
nnaka2992
0
120
AWS Step Functions は CDK で書こう!
konokenj
4
840
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
160
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
240
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
290
React 19アップデートのために必要なこと
uhyo
8
1.6k
Featured
See All Featured
Building Your Own Lightsaber
phodgson
104
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Gamification - CAS2011
davidbonilla
80
5.2k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Making Projects Easy
brettharned
116
6k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Designing for humans not robots
tammielis
250
25k
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 σϞ