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

JavaScriptはコンパイラ型言語か?/Is JavaScript a compiled ...

JavaScriptはコンパイラ型言語か?/Is JavaScript a compiled language?

JavaScriptはコンパイラ型言語か?インタプリタ型言語か?を調べてみました

#roppongijs

Akira Morikawa

September 18, 2018
Tweet

More Decks by Akira Morikawa

Other Decks in Technology

Transcript

  1. 字句解析 let x = “string”; let x = “string” Tokens

    構文解析 AST : Abstract Syntax Tree 構文木 (Lexical Analysis) (Syntax Analysis)
  2. - ESTraverse - babel/traverse - estree-walker - Esrecurse - AST

    Types - Acorn - Esprima - babel/parser - espree parser traverseler AST 関連ツール - escodegen - babel/generator code generator - ESLint linter
  3. 主要JSエンジン # Browser JS Engine 1 Google Chrome V8 2

    Apple Safari JavaScriptCore 3 Mozilla Firefox SpiderMonkey 4 Microsoft Edge Chakra 5 KDE Konqueror KJS 6 Mozilla (JVM) Rhino
  4. V8

  5. - Just-In-Timeコンパイラの略 (対義語 → AOT : Ahead-Of-Time コンパイラ) - プログラムの実行時にコンパイル

    (中間コードからネイティブコードに変換) - Java / .NET 等が有名 JITコンパイラ
  6. - JavaScript エンジンは JIT コンパイラを持つ - インタプリタはバイトコードをすばやく生成 - あまり効率的ではない -

    コンパイラは効率の良いマシンコードを生成 - コンパイルに時間がかかる - 複数のコンパイラを使って最適化を制御している 結論