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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
chikoski
September 03, 2016
Technology
3.1k
9
Share
20160903-WebAssembly
chikoski
September 03, 2016
More Decks by chikoski
See All by chikoski
20210825_ossx
chikoski
0
340
festudy02-wasm
chikoski
1
1.1k
An overview of WebAssembly; how it is used, created, and applied?
chikoski
1
780
Functions in JavaScript
chikoski
1
1.2k
20171018-WASM
chikoski
2
1.4k
20171002-wejs
chikoski
1
620
20170924-html5conference-wasm
chikoski
5
10k
Equivalence_in_JS
chikoski
0
1.6k
いまさら振り返るPromise
chikoski
1
610
Other Decks in Technology
See All in Technology
最低限これだけ押さえれ大丈夫_Claude Enterprise/Team企業展開ガバナンス入門
tkikuchi
1
260
AI時代の私の技術インプットとアウトプット術
tonkotsuboy_com
13
7.2k
責任あるソフトウェアエンジニアリングの紹介4章・5章 / RSE_Ch4-5
ido_kara_deru
0
350
Kiro CLI v2.0.0がやってきた!
kentapapa
0
190
Copilot CLI・IDE・Web・スマホで途切れない開発フローを目指して / One Copilot flow - CLI IDE Web Mobile
aeonpeople
1
1.1k
Cloud Run のアップデート 触ってみる&紹介
gre212
0
160
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
100
Claude Code x Accounting
kawaguti
PRO
1
330
イベントで大活躍する電子ペーパー名札 〜その3〜 / ビジュアルプログラミングIoTLT vol.23
you
PRO
0
150
eBPF Can Do It! A 5-Minute Tour of 5 Real-World PHP Issues Solved with eBPF
egmc
0
290
NFLコンペ2026 解法
lycorptech_jp
PRO
0
120
Javaで学ぶSOLID原則
negima
1
200
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Writing Fast Ruby
sferik
630
63k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
310
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Evolving SEO for Evolving Search Engines
ryanjones
0
200
Leo the Paperboy
mayatellez
7
1.8k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
180
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.7k
New Earth Scene 8
popppiees
3
2.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
The agentic SEO stack - context over prompts
schlessera
0
790
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