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