プログラムとは
1.1 プログラムとは
私たちは毎日、コンピュータを使って、表計算ソフトや文書作成ソフトなど、さまざまな「プログラム」を利用しています。プログラムを使うということは、特定の仕事をコンピュータに指示し、処理させていると考えることができ、プログラムは「この場合にはあれをしなさい」、「あの場合にはこれをしなさい」というように、コンピュータに対して様々な命令をする作業指示書であるとも言えます。
プログラミングの世界では、この作業指示書のことをプログラムと呼び、プログラムを書く作業のことをプログラミングと呼びます。
1.1.1 プログラミング言語について
コンピュータは、人間の言葉を理解できません。コンピュータが理解できる言語は、全てが「0」と「1」で表現されたマシン語(機械語)と呼ばれる言語だけです。そのため、人間がコンピュータに作業を指示する場合は、作業指示書をマシン語で書かなければなりません。
図 1.1.1 : コンピュータとマシン語
しかし、マシン語という言語は、上に述べたように「0」と「1」という数字の羅列からできており、人間が理解するには非常に難解で、習得することはほぼ不可能です。ですので、人間にとってマシン語よりも理解しやすいプログラミング言語で作業指示書を書き、それを機械語に訳してもらってコンピュータに渡すという発想が生まれました。
プログラミング言語は、コンピュータに命令したい作業を書くのに使われる言葉で、Java言語、PHP、C言語など、多くの種類があります。
このプログラミング言語で書かれた作業指示書をマシン語に翻訳し、コンピュータに渡すことで、コンピュータは作業指示書に書かれた命令を実行します。
図 1.1.2 マシン語とプログラミング言語
1.1.2 コンパイラ型言語とインタプリタ型言語
プログラミング言語で書かれたプログラムをソースコードとも呼びますが、ソースコードのままでは、まだコンピュータは実行することができません。
先ほど説明したように、コンピュータがプログラムを実行するには、ソースコードをマシン語に翻訳する必要があります。
この翻訳の作業には、コンパイラというものを使う方法と、インタプリタというものを使う方法の、大きく分けて2通りの方法があります。
1. コンパイラ型言語
コンパイラ型言語とは、人間の記述したソースコードをコンパイラと呼ばれるソフトウェアで一括して実行可能な形式に翻訳し、コンピュータで実行するタイプの言語です。ソースコードをマシン語に翻訳することを「コンパイル」、コンパイルに用いる特別なソフトウェアのことを「コンパイラ」といいます。またコンパイルされた実行形式のコードを「マシンコード」、あるいは「バイナリコード」、「オブジェクトコード」等と呼びます。
2. インタプリタ型言語
インタプリタ型言語とは、プログラムの実行時に1行ずつ解釈しながら逐次実行していく言語です。プログラムを解釈・実行するソフトウェアを「インタプリタ」と呼びます。
インタプリタ型は、コンパイルの手間が省け、プログラムを書いたら即実行できるメリットがある反面、実行時にプログラムを1行ずつ解釈する処理が入るため、コンパイラ型言語に比べて処理が遅くなります。
プログラミング言語には、コンパイラ型の言語も、インタプリタ型の言語もそれぞれ数多くあります。
コンパイラ型の代表的なものはC言語です。インタプリタ型の代表的なものには、PHPがあります。
ではJavaはどちらを利用するのでしょう。実はJavaは、コンパイラ型・インタプリタ型の両方を組み合わせて利用する、「中間言語」と呼ばれます。
表 1.1.1 : コンパイラ型言語、インタプリタ型言語とJava