2,103 バイト追加,
2021年11月29日 (月) 05:08 '''インタープリター'''([[英語]]:interpreter)とは、日本語に直訳すると「通訳者」のことであり、[[コンピューター]]の世界では[[ソースコード]]や[[中間言語]]を[[機械語]]に同時通訳しながら実行するものをいう。
最近はより新しいものに見せかけ[[ソフトウェア]]の販売を促進する目的で「[[仮想マシン]]」などと呼ばれることも多い。
「翻訳と実行」を同時に行うため、実行速度はどうしても遅くなる。
== ハイブリッド方式 ==
最近はインタープリターと[[JITコンパイラー]](起動時にコンパイルする方式)のハイブリッド形式が主流である。
ハイブリッド方式では、アプリを起動した瞬間はインタープリターで即座に実行を開始し、その裏でJITコンパイラーがゴリゴリに最適化を施したコンパイルを行い、何事もなかったかのように動作を切り替えるというものである。
インタープリター方式はアプリの「実行速度」が遅い。
一方、AOTコンパイル方式は「実行プラットフォームの性能を100%引き出せない」という欠点がある。ソフトウェアが「i386向け」だとi486やPentiumの新機能は使われないのである。
一方、JITコンパイル方式はアプリの「起動速度」が遅い。また、この起動速度の遅さを改善するため[[AOTコンパイル]]ほど最適化に時間を掛けるわけにもいかない。
つまり理想は「AOTコンパイル並の最適化をJITコンパイルで行う」方式である。しかしアプリの起動に30分も1時間もかかったら大事件だわな。
そこでハイブリッドだ。最近のJava仮想マシンなんかは「インタープリター」「JIT(ちょい最適化)」「JIT(鬼最適化)」という多段階のハイブリッドらしいぞ。
<br />
== 関連項目 ==
* [[インタープリター]]
* [[コンパイラー]]
* [[JITコンパイラー]]