〜Java VM(Virtual Machine)〜

コンピュータの種類には、WindowsマシンやMacintoshなどがある。
よく電気店で売られているソフトウェアにはWindows用やMacintosh用などの指定がされているものもある。
これは、OSによって同じアプリケーションであっても少しずつ中身のプログラムが違うからである。
WindowsにはWindowsに合った形式のプログラム、MacintoshにはMacintoshに合ったプログラムを適切にインストールしなければならない。
WindowsにMacintosh用のソフトウェアをインストールすることはできない。仮にできたとしても正常には動かない。
車によってタイヤのサイズが違うように、違うサイズのタイヤをつけても車が走らないことに似ている。

C言語に代表されるような従来のプログラミング言語では、WindowsでコンパイルできるプログラムをそのままMacintoshでコンパイルできるとは限らない。
OSやCPUの種類によって扱えるものと扱えないものがあったりするからである。

Java言語をコンパイルして生成された中間コードは、そのままでは実行することはできない。
そのプラットフォーム()固有の形式(ネイティブコード)に変換するソフトウェアを用いて、変換しながら実行する。(逐次解釈)
この変換と実行を行うのがJava VMである。
Java VMをインストールすることによって、OSやCPUが違っても同じ中間コードを実行することができる。
これは、図にあるように、同じ中間コードを実行できるように各OSごとにJava VMが用意されているからだと考えればよい。



最近では中間コードをそのまま実行するのではなく、JIT(Just-in-time Compiler)を用いて、中間コードをネイティブコードに変換し、プログラムを高速に実行できるようにもなっている。

プラットフォーム
アプリケーションを動かす際に基盤となるOSの種類や環境、設定などのこと。