プログラム言語とは
Javaが実行環境に依存しない理由
ソフトウェアを作るのがプログラミング言語です。
これには、C、C++、C#言語や
Java言語があります。
Q.プログラミング言語とはどんなものでしょう?--プログラミング言語の必要性は?--
プログラミング言語は、コンピュータにさせる処理を人間にとってわかりやすく記述できる言語です。
なぜ人間にわかりやすく記述できるプログラミング言語が必要かというと、CPUはすべて機械語で動いていて、その機械語は0,1の羅列で
記述されていて、普通の人間がその意味を理解したりするのは難しいし、できたとしても非効率的です。
また、機械語はCPUごとに違いがあるため、CPUごとの扱える必要があります。
では、どうやってプログラミング言語でコンピュータに命令を与えているのかというと、それはコンパイルという行為を行うことによってプログラミング言語
で記述されたファイル(ソースコード)を機械語に翻訳することができるからです。
で、コンパイルすると書きましたが、これはコンパイラというソフトウェアによっておこなわれます。
どういうことか実際に図をかいてみてみましょう
ここでは例としてC言語を取り扱います。
[ここで
C言語の図を書く]
C言語は、OSが
windowsの場合は、コンパイルすることによってexeファイルが生成されます。これは、機械語で記述実行形式のファイルです。
これを実行すると、コンピュータがソースコードで意図したような動作をします。
ただし、OSやCPUに対してコンパイルするため特定のOS、CPUでしか動きません。
次に、Java言語の場合について、同じように説明しましょう。
[ここでJava言語の図を書く]
Java言語では、コンパイラによってコンパイルした後に中間言語(バイトコード)が生成され、その中間言語をJVM(JavaVirtualMachine)が機械語に翻訳して、
CPUへ命令をだして、結果ソフトウェアが実行される。
Java言語でのミソはこのJVMと中間言語です。
JVMはシステムのアーキテクチャごとに用意されていて、例えば、Windows用のJVMや
Linux用のJVM、はたまた携帯電話のOS用のJVMなどもあります。
ソースコードのコンパイル後に生成される中間言語と、それぞれのJVMがあればソフトウェアが実行できます。
この二つを見比べた場合、C言語もLinux用などにコンパイルすれば実行することが可能です。しかしC言語はOS固有の機能を直接使うのでコンパイルのみでなくソースコードも変更する必要があります。
Java言語は一度コンパイルした後は、中間言語と、Windows用のJVMやLinux用のJVMを用意するだけで、どの環境(携帯電話の上でも動く)でも動かすことができる
Javaはオブジェクト指向プログラミングであり現在の主流の考えでプログラミングすることができます。またメモリ管理や例外処理機構があるのでつまずきにくいと思います。
まとめ
- JVMが様々なOSごとに用意されていれば、中間言語とJVMでどんな環境でも動くので汎用性が高いプログラミング言語。
- いままでプログラミングしたことない人にとっても、比較的取っつきやすい言語といえる。
簡単なイメージとしての図↓
最終更新:2011年03月02日 14:26