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
20160903-WebAssembly
Search
chikoski
September 03, 2016
Technology
9
3.1k
20160903-WebAssembly
chikoski
September 03, 2016
Tweet
Share
More Decks by chikoski
See All by chikoski
20210825_ossx
chikoski
0
310
festudy02-wasm
chikoski
1
990
An overview of WebAssembly; how it is used, created, and applied?
chikoski
1
730
Functions in JavaScript
chikoski
1
1.2k
20171018-WASM
chikoski
2
1.4k
20171002-wejs
chikoski
1
590
20170924-html5conference-wasm
chikoski
5
10k
Equivalence_in_JS
chikoski
0
1.5k
いまさら振り返るPromise
chikoski
1
570
Other Decks in Technology
See All in Technology
データエンジニアがこの先生きのこるには...?
10xinc
0
440
How to achieve interoperable digital identity across Asian countries
fujie
0
120
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
200
AWSにおけるTrend Vision Oneの効果について
shimak
0
130
20250929_QaaS_vol20
mura_shin
0
110
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
23
17k
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
170
[2025-09-30] Databricks Genie を利用した分析基盤とデータモデリングの IVRy の現在地
wxyzzz
0
470
実装で解き明かす並行処理の歴史
zozotech
PRO
1
340
Optuna DashboardにおけるPLaMo2連携機能の紹介 / PFN LLM セミナー
pfn
PRO
1
880
VCC 2025 Write-up
bata_24
0
180
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
500
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
Practical Orchestrator
shlominoach
190
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Gamification - CAS2011
davidbonilla
81
5.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How STYLIGHT went responsive
nonsquared
100
5.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Six Lessons from altMBA
skipperchong
28
4k
Thoughts on Productivity
jonyablonski
70
4.9k
Transcript
ـٓؐؠ欽ך$16⡲״ 8FC"TTFNCMZד .P[JMMB+BQBO /4IJNJ[V OTIJNJ[V!NP[JMMBKBQBOPSH!DIJLPTLJ )5.-$POGFSFODF !匌❨ꨵ堣㣐㷕⻌⼪⡝ٍؗٝػأ
+BWB4DSJQU7. KT
+BWB4DSJQU7. KT 8"4.7. XBTN
/4IJNJ[V!DIJLPTLJ ˖ .P[JMMB+BQBO ˖ %FWFMPQFSSFMBUJPO ˖ -PDBMJ[FS.%/ 46.0 'JSFGPYGPSJ04 ˖
IUNMK8FCفٓحزؿؓ٦ي鿇٦ي鿇 ˖ فؚٗٓىؚٝ鎉铂ךךָ㥨ֹדׅ ˖ IUUQTTMJEFTIBSFOFUDIJLPTLJ ˖ IUUQTIUNMFYQFSUTKQDIJLPTLJ
None
None
None
Proudly non-profit, Mozilla makes products like Firefox with a mission
to keep the power of the Web in the hands of users everywhere. Mozilla Mission (https://www.mozilla.org/en-US/mission/)
Our mission is to promote openness, innovation & opportunity on
the Web. Mozilla Mission(https://www.mozilla.org/en-US/mission/)
IUUQTHJUIVCDPN8FC"TTFNCMZEFTJHOJTTVFT IUUQTHJUIVCDPN'PHBDDJP0QFO%FTJHO
8FC"TTFNCMZ ˖ 8$ך؝ىُصذ؍ؚٕ٦فד陽锷ׁגְ倜׃ְ8FC垥彊 ˖ 㼭ֻׁגه٦ةـٕזغ؎شٔؿؓ٦وحز ˖ ط؎ذ؍ـח鵚ְأؾ٦سדך㹋遤 ˖ 㸜Ⰻז㹋遤橆㞮 ˖
㼎ד㼎䘔ׅذؗأز邌植
https://www.w3.org/community/webassembly/
None
.P[JMMB .JDSPTPGU (PPHMF "QQMF
https://www.w3.org/community/webassembly/
https://webassembly.github.io/demo/
IUUQTHJUIVCDPN8FC"TTFNCMZEFTJHOCMPCNBTUFS'"2NE
文字列 実行コード 抽象構文木 トークン列 中間表現 字句解析 構文解析 意味解析 最適化・コード生成
文字列 AST バイトコード 字句解析 / 構文解析 生成 実行 * AST:
Abstract Syntax Tree / 抽象構文木 IUUQTCMPHNP[JMMBPSHMVLFBTNKTBPUDPNQJMBUJPOBOETUBSUVQQFSGPSNBODF
文字列 字句解析 / 構文解析 実行 バイトコード AST Baseline Compiled Code
MIR Iron Compiled Code 実行と プロファイル 実行 Bail 生成 Baseline Compile Iron Build Iron Compile * AST: Abstract Syntax Tree / 抽象構文木 MIR: Medium-level Intermediate Representation / 中間表現 IUUQTCMPHNP[JMMBPSHMVLFBTNKTBPUDPNQJMBUJPOBOETUBSUVQQFSGPSNBODF
文字列 字句解析 / 構文解析 AST MIR 実行コード 生成 Compile *
AST: Abstract Syntax Tree / 抽象構文木 MIR: Medium-level Intermediate Representation / 中間表現
asm.js JS Native ダウンロード 構文解析 コンパイル 実行開始 ダウンロード 構文解析 コンパイル
実行開始 ダウンロード 構文解析 コンパイル 実行開始
asm.js JS Native ダウンロード 構文解析 コンパイル 実行開始 ダウンロード 構文解析 コンパイル
実行開始 ダウンロード 構文解析 コンパイル 実行開始 WASM ダウンロード 構文解析 コンパイル 実行開始
8"4.؝ٝػ؎ٕך欰䧭暟
D DQQ XBTN XBTU BTN KT DMBOHFNDD FNDD XBTNBT BTNXBTN
変換パイプライン
None
FNTELJOTUBMMFNTDSJQUFOJODPNJOHCJU FNTELJOTUBMMDMBOHJODPNJOHCJU FNTELJOTUBMMTELJODPNJOHCJU FNTELBDUJWBUFFNTDSJQUFOJODPNJOHCJU FNTELBDUJWBUFDMBOHJODPNJOHCJU FNTELBDUJWBUFTELJODPNJOHCJU TPVSDF\&.4%,@*/45"--@%*3^FNTEL@FOWTI Emscripten から wasm
を出力する設定
MT BEEDQQ FNDDT#*/&3:&/PBEEXBTNBEEDQQ MT BEEDQQBEEXBTN
LLVMのターゲットにもWebAssemblyの文字が
8FCل٦آפך穈鴥
WebAssemblyは実行コードに変換されてから実行される
GFUDI BEEXBTN UIFO SFTQPOTF SFTQPOTFBSSBZ#VGGFS UIFO CVGGFS\ DPOTUDPEF#ZUFOFX6*OU"SSBZ CVGGFS
DPOTUNPEVMF8BTNJOTUBODJBUF.PEMVF DPEF#ZUF BMFSU A \NPEVMFFYQPSUTBEE ^A ^ WASM.instanceiateModule でコンパイル
FYQPSUJOUBEE JOU JNQPSUJOUTPNFUIJOH JOUBEE4PNF JOUB \ SFUVSOB TPNFUIJOH
^ CからJSの関数を呼び出す場合
GFUDI BEETPNFXBTN UIFO SFTQPOTF SFTQPOTFBSSBZ#VGGFS UIFO CVGGFS\ DPOTUDPEF#ZUFOFX6*OU"SSBZ CVGGFS
DPOTUNPEVMF8"4.JOTUBODJBUF.PEMVF DPEF#ZUF \ TPNFUIJOH ^ BMFSU A \NPEVMFFYQPSUTBEETPNF ^A ^ CからJSの関数を呼び出す場合
8FC"TTFNCMZך暴䗙 ˖ 㘗➰ֽׁأةحؙوءٝ ˖ 鸬竲זًٌٌٔرٕ ˖ 䬄韋圓俑加 "45 ˖
圓鸡⻉ׁ؝ٝزٗ٦ٕؿٗ٦㹀纏 ˖ ٌآُ٦ٕءأذي
B
B B
B B 抽象構文木 (Abstract
Syntax Tree : AST)
8FC"TTFNCMZ Y "3. JBEE BEEM "%% DBMM DBMM #- JMPBE
$)&$, NPW $)&$, -%3 実マシンのコードに近い仮想的な命令セットを定義 IUUQTHJUIVCDPN8FC"TTFNCMZEFTJHOCMPCNBTUFS"TU4FNBOUJDTNE
8"4. BTNKT JBEE B C ] DBMM G ] JMPBE
)&"1<J>] asm.js との互換性
JNVM JBEE TFU@MPDBM B JDPOTU JDPOTU JDPOTU
テキスト表現(仕様策定中) JNVM JBEE TFU@MPDBM B JDPOTU JDPOTU
JDPOTU TFU@MPDBMB JBEE JDPOTU JNVM JDPOTU JDPOTU
子ノードが出現順に評価される JNVM JBEE TFU@MPDBM B JDPOTU JDPOTU
JDPOTU
㘗 䪔ִ⦼ך珏겲 J ؽحزך侭侧⦼ J ؽحزך侭侧⦼ G ؽحزך侭侧⦼ G ؽحزך侭侧⦼
ㄏ⟀ 䮶莸ְ JMPBE@T غ؎زٗ٦س׃ג痗〾➰ֹJפ䭁䓸 JMPBE@V غ؎زٗ٦س׃ג痗〾ז׃Jפ䭁䓸 JMPBE@T غ؎زٗ٦س׃ג痗〾➰ֹJפ䭁䓸 JMPBE@V غ؎زٗ٦س׃ג痗〾ז׃Jפ䭁䓸
JMPBE غ؎زٗ٦س
ㄏ⟀ 䮶莸ְ JTUPSF JJח㢌䳔׃גأز، JTUPSF JJח㢌䳔׃גأز، JTUPSF 㢌䳔ׇ׆חغ؎زأز،
QUSNBMMPD BEESFTT@TQBDF@NBY (# غ؎ز 連続的にとられるメモリ JMPBE JTUPSF
ㄏ⟀ 䮶莸ְ HSPX@NFNPSZ ًٌٔ䭷㹀ׁل٦آⴓ㟓װׅ DVSSFOU@NFNPSZ 植㖈ךًٌٔ؟؎ؤل٦آ侧ד鵤ׅ
ㄏ⟀ 䮶莸ְ OPQ ⡦׃זְ CMPDL ـٗحؙך㹀纏 MPPQ 粸鵤׃ JG JG俑UIFOח醱侧ך䒭ָ֮㜥さ
CS ⴓ䀄 CS@JG 勴⟝➰ֹⴓ䀄 CS@UBCMF آٍٝفذ٦ـٕ SFUVSO 鵤⦼
NPEVMF NFNPSZ FYQPSUNFNPSZNFNPSZ FYQPSUBEEBEE
GVODBEE QBSBNJ QBSBNJ SFTVMUJ JBEE HFU@MPDBM HFU@MPDBM 同等のWASMモジュール
8FC"TTFNCMZך➙䖓 .71ך䖓ח✮㹀ׁגְ堣腉 ˖ أٖحس ˖ Ⱏ剣ًٌٔ ˖ ت؎شىحؙؙٔٝ ˖ ؝أزך⢽㢩
˖ 㔿㹀ꞿך4*.% 㼛勻涸ז堣腉 ˖ 稢ְַ磛䏝דךًٌٔ盖椚 ˖ 㣐ְֹ؟؎ؤךل٦آ ˖ ⵖ䖴圓鸡ך⯍㹋 ˖ ($װ%0.ך窟さ ˖ (#⟃♳ך简䕎ًٌٔ ˖ FUD
תה ˖ 8"4.כ؝ٝػ؎ٓך欰䧭暟 ˖ 1PMZMM ˖ +4ך縧ֹ䳔ִדכזְ ˖ ְתךהֿ%0.湫䱸ⵃ欽דֹזְ ˖
넝鸞ד侧⦼鎘皾׃ְ㜥כꣲ ˖ 欰欵䚍ך倯⮚⯓ׅ㜥さ㢳ְ
ꟼ鸬䞔㜠 ˖ 8FC"TTFNCMZ$PNNVOJUZ(SPVQ IUUQTXXXXPSHDPNNVOJUZXFCBTTFNCMZ ˖ .PEFTU IUUQTEFWNP[JMMBKQ ˖ FNTDSJQUFO
IUUQTFNTDSJQUFOPSH ˖ 8"4.&YQMPSFS IUUQNCFCFOJUBHJUIVCJP8BTN&YQMPSFS