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
270
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
770
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
1.7k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
660
Lerna による明示的疎結合アーキテクチャ
pine
1
620
CircleCI 2.0 x JavaScript
pine
3
530
Perl 卒業式
pine
0
330
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
490
Emoji Generator meets Browser Extensions
pine
1
2.9k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
Vibe Coding の話をしよう
schroneko
14
3.8k
ビカム・ア・コパイロット
ymd65536
1
130
実践Webフロントパフォーマンスチューニング
cp20
45
10k
KawaiiLT 登壇資料 キャリアとモチベーション
hiiragi
0
160
Cursorを活用したAIプログラミングについて 入門
rect
0
210
The Missing Link in Angular’s Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
150
AWS Summit Hong Kong 2025: Reinventing Programming - How AI Transforms Our Enterprise Coding Approach
dwchiang
0
140
データベースの技術選定を突き詰める ~複数事例から考える最適なデータベースの選び方~
nnaka2992
2
1.7k
エンジニア向けCursor勉強会 @ SmartHR
yukisnow1823
3
12k
ドメイン駆動設計とXPで支える子どもの未来 / Domain-Driven Design and XP Supporting Children's Future
nrslib
0
290
OpenTelemetry + LLM = OpenLLMetry!?
yunosukey
1
130
事業KPIを基に価値の解像度を上げる
nealle
0
110
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Music & Morning Musume
bryan
47
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
What's in a price? How to price your products and services
michaelherold
245
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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 σϞ