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

Dcfa005284131fd4052e767962205f93?s=47 Akira Morikawa
September 18, 2018

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

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

#roppongijs

Dcfa005284131fd4052e767962205f93?s=128

Akira Morikawa

September 18, 2018
Tweet

Transcript

  1. 9.

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

    構文解析 AST : Abstract Syntax Tree 構文木 (Lexical Analysis) (Syntax Analysis)
  2. 13.

    - ESTraverse - babel/traverse - estree-walker - Esrecurse - AST

    Types - Acorn - Esprima - babel/parser - espree parser traverseler AST 関連ツール - escodegen - babel/generator code generator - ESLint linter
  3. 17.

    主要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. 18.

    V8

  5. 21.
  6. 22.

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

    (中間コードからネイティブコードに変換) - Java / .NET 等が有名 JITコンパイラ
  7. 23.

    - JavaScript エンジンは JIT コンパイラを持つ - インタプリタはバイトコードをすばやく生成 - あまり効率的ではない -

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