Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20160903-WebAssembly

chikoski
September 03, 2016

 20160903-WebAssembly

chikoski

September 03, 2016
Tweet

More Decks by chikoski

Other Decks in Technology

Transcript

  1. /4IJNJ[V!DIJLPTLJ ˖ .P[JMMB+BQBO ˖ %FWFMPQFSSFMBUJPO ˖ -PDBMJ[FS.%/ 46.0 'JSFGPYGPSJ04 ˖

    IUNMK8FCفٓحزؿؓ٦ي鿇؜٦ي鿇 ˖ فؚٗٓىؚٝ鎉铂׉ך׮ךָ㥨ֹדׅ ˖ IUUQTTMJEFTIBSFOFUDIJLPTLJ ˖ IUUQTIUNMFYQFSUTKQDIJLPTLJ
  2. 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/)
  3. Our mission is to promote openness, innovation & opportunity on

    the Web. Mozilla Mission(https://www.mozilla.org/en-US/mission/)
  4. 文字列 AST バイトコード 字句解析 / 構文解析 生成 実行 * AST:

    Abstract Syntax Tree / 抽象構文木 IUUQTCMPHNP[JMMBPSHMVLFBTNKTBPUDPNQJMBUJPOBOETUBSUVQQFSGPSNBODF
  5. 文字列 字句解析 / 構文解析 実行 バイトコード 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
  6. 文字列 字句解析 / 構文解析 AST MIR 実行コード 生成 Compile *

    AST: Abstract Syntax Tree / 抽象構文木  MIR: Medium-level Intermediate Representation / 中間表現
  7. asm.js JS Native ダウンロード 構文解析 コンパイル 実行開始 ダウンロード 構文解析 コンパイル

    実行開始 ダウンロード 構文解析 コンパイル 実行開始 WASM ダウンロード 構文解析 コンパイル 実行開始
  8. GFUDI BEEXBTN UIFO SFTQPOTF SFTQPOTFBSSBZ#VGGFS  UIFO CVGGFS\ DPOTUDPEF#ZUFOFX6*OU"SSBZ CVGGFS

     DPOTUNPEVMF8BTNJOTUBODJBUF.PEMVF DPEF#ZUF  BMFSU A \NPEVMFFYQPSUTBEE   ^A  ^  WASM.instanceiateModule でコンパイル
  9. 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の関数を呼び出す場合
  10. 8FC"TTFNCMZ Y "3. JBEE BEEM "%% DBMM DBMM #- JMPBE

    $)&$, NPW $)&$, -%3 実マシンのコードに近い仮想的な命令セットを定義 IUUQTHJUIVCDPN8FC"TTFNCMZEFTJHOCMPCNBTUFS"TU4FNBOUJDTNE
  11. 8"4. BTNKT JBEE B C ] DBMM G ] JMPBE

    )&"1<J>] asm.js との互換性
  12. テキスト表現(仕様策定中) JNVM JBEE TFU@MPDBM B  JDPOTU  JDPOTU 

    JDPOTU TFU@MPDBMB  JBEE  JDPOTU   JNVM  JDPOTU   JDPOTU     
  13. NPEVMF  NFNPSZ   FYQPSUNFNPSZNFNPSZ   FYQPSUBEEBEE 

     GVODBEE QBSBNJ  QBSBNJ  SFTVMUJ   JBEE  HFU@MPDBM   HFU@MPDBM      同等のWASMモジュール
  14. 8FC"TTFNCMZך➙䖓 .71ך䖓ח✮㹀ׁ׸גְ׷堣腉 ˖ أٖحس ˖ Ⱏ剣ًٌٔ ˖ ت؎شىحؙؙٔٝ ˖ ؝أزך⢽㢩

    ˖ 㔿㹀ꞿך4*.% 㼛勻涸ז堣腉 ˖ 稢ְַ磛䏝דךًٌٔ盖椚 ˖ 㣐ְֹ؟؎ؤךل٦آ ˖ ⵖ䖴圓鸡ך⯍㹋 ˖ ($װ%0.ך窟さ ˖ (#⟃♳ך简䕎ًٌٔ ˖ FUD
  15. תה׭ ˖ 8"4.כ؝ٝػ؎ٓך欰䧭暟 ˖ 1PMZMM ˖ +4ך縧ֹ䳔ִדכזְ ˖ ְתךהֿ׹%0.׾湫䱸ⵃ欽דֹזְ ˖

    넝鸞ד侧⦼鎘皾׾׃׋ְ㜥꬗כꣲ׵׸׷ ˖ 欰欵䚍ך倯׾⮚⯓ׅ׷㜥さ׮㢳ְ