Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Pine Mizune Jul 29, 2016 / Kichijoji.pm #8 An introduction to WebAssembly
Slide 2
Slide 2 text
1SPGJMF o (JU)VC !QJOF o 5XJUUFS!QJOF o ͖ͳݴޠ +BWB4DSJQU o ࣄͰॻ͍͍ͯΔݴޠ1FSM+4 o .PCJMF'BDUPSZ *OD
Slide 3
Slide 3 text
8FC"TTFNCMZ ͱ 8FC"TTFNCMZ ͷ࠷ۙͷಈ 8FC"TTFNCMZ ͷϝϦοτ 8FC"TTFNCMZ ͷར༻ϑϩʔ σϞ 5BCMFPGDPOUFOUT
Slide 4
Slide 4 text
ϒϥβ͚ ࣮ߦՄೳόΠφϦϑΥʔϚοτ • +BWB4DSJQUͷସͰͳ͍ • --7.ܥݴޠ͔ΒίϯύΠϧՄೳ • $ISPNF'JSFGPY /JHIUMZ Ͱ࣮ࡁΈ 8FC"TTFNCMZͱ C/C++/Rust WebAssembly LLVM compiler
Slide 5
Slide 5 text
C/C++/Rust WebAssembly Compiler 94͑$$Ͱڞ௨Մೳ • [MJCD ͳͲಈ͘Α Perl / XS 1FSMͱΈ߹Θͤͯ͏ͳΒ
Slide 6
Slide 6 text
n $ISPNFɺ8FC,JUɺ'JSFGPYɺ.JDSPTPGU&EHFɺ--7 .ɺ6OJUZΒ͕αϙʔτΛද໌ IUUQXXXQVCMJDLFZKQCMPHXFCBTTFNCMZIUNM n 7ɺ'JSFGPYɺ.JDSPTPGU&EHF͕ʮ8FC"TTFNCMZʯ ͷ࣮Λൃද ʢ IUUQXXXQVCMJDLFZKQCMPHWGJSFGPYNJDSPTPGU@FEHFXFC BTTFNCMZXFCIUNM 8FC"TTFNCMZͷ࠷ۙͷಈ
Slide 7
Slide 7 text
8FC"TTFNCMZ ͷϝϦοτ ߴ࣮ߦͱলϑΝΠϧαΠζ • ϒϥβԋࢉॲཧͷߴԽ ήʔϜ ը૾ॲཧ FUD – ߴ 8FC"TTFNCMZ BTNKT +BWB4DSJQU – ˞BTNKT .P[JMMB։ൃͷ +4ʹ੩తղੳใΛ༩ͨ͠αϒηοτ • సૹϑΝΠϧ༰ྔͷݮ – BTNKT ߴʹ࣮ߦͰ͖Δ͕ϑΝΠϧαΠζ͕ωοΫ – όΠφϦϑΥʔϚοτʹ͢Δ͜ͱͰղܾ
Slide 8
Slide 8 text
8FC"TTFNCMZ ͷར༻ϑϩʔ ソースコード .ll .s .wast .wasm .c/.cpp LLVM IR (中間表現) WebAssembly のアセンブラ wasm のテキスト形式 (S式) wast をシリアライズしたもの
Slide 9
Slide 9 text
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
Slide 10
Slide 10 text
8FC"TTFNCMZ ͷར༻ϑϩʔ ソースコード .ll .s .wast .wasm .c/.cpp wast をシリアライズしたもの ★ 簡単に試すなら Emscripten がオススメ
Slide 11
Slide 11 text
QJOFNEXBTNFYBNQMF IUUQTHJUIVCDPNQJOFNEXBTNFYBNQMF σϞ