JavaScript の人気が高まっているため、JavaScriptエンジン、JavaScript仮想マシン、または JavaScriptインタープリターのいずれかについて、同じコンテキストで同じことを参照しているのを(同じスピーチ中でも) 聞くことに興味をそそられました。
したがって、私はいくつかの調査を試みました。これらの流行語がすべて同時に共存する理由 (理由があるに違いありません) と、それらの間に実際の (わずかではありますが) 違いがあるかどうかです。
これまでに学んだことを、さまざまな情報源から要約しようとしています (次の行で引用しています)。私が間違っている/誤解を招くような場合は、お気軽に修正してください。
それらすべての実行時の義務は基本的に同じであることがわかりましたが、主な違いもいくつか見つかりました。
仮想マシンの処理
- 最も複雑です(IO、仮想命令セット なども実装します)
- 常に通訳+中間言語を含む
- さらに、コンパイルも含まれる場合があります (ジャストインタイムおよび/または動的再コンパイル)
- アプリケーションは VM プロセス内でのみスレッドとして実行されます
- ランタイム環境に結合
- 例: Java 仮想マシン、Dalvik 仮想マシン
ランタイム
言語エンジン
- より軽量
- インタープリターまたはコンパイルのいずれかを使用できます(ジャストインタイムおよび/または動的再コンパイル)
- 基盤となる環境/オペレーティング システムから切り離されている
- 例: すべての JavaScript エンジン、Zend Engine
質問:
上位のリストは正確ですか? それとも、同じ名称を使用する最も一般的なランタイム システム間の完全に偶然の類似性に基づく副産物ですか?
他にも注目すべき違いはありますか?