Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
320
festudy02-wasm
chikoski
1
1k
An overview of WebAssembly; how it is used, created, and applied?
chikoski
1
740
Functions in JavaScript
chikoski
1
1.2k
20171018-WASM
chikoski
2
1.4k
20171002-wejs
chikoski
1
600
20170924-html5conference-wasm
chikoski
5
10k
Equivalence_in_JS
chikoski
0
1.5k
いまさら振り返るPromise
chikoski
1
580
Other Decks in Technology
See All in Technology
特別捜査官等研修会
nomizone
0
200
Agent Skillsがハーネスの垣根を超える日
gotalab555
3
1.3k
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
140
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
590
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
860
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
0
120
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
180
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
15
1.5k
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
220
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
880
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
300
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
610
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.1k
4 Signs Your Business is Dying
shpigford
186
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
How GitHub (no longer) Works
holman
316
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
How to Talk to Developers About Accessibility
jct
1
81
The agentic SEO stack - context over prompts
schlessera
0
550
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
67
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
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