0.プログラミング言語
0.1.プログラム
プログラムとはコンピュータを動かす命令の集まりのことで、コンピュータはこれがなければまったく動作することができません。 プログラムはプログラミング言語で記述され、インタープリタやコンパイラで機械語に変換されます。ちなみにプログラムとソフトウェアは同義です。
0.2.プログラミング言語
プログラミング言語とは、プログラムを開発するために用意された言語のことです。機械語・アセンブラ言語・高級言語などがあり、後者ほど人間に理解しやすいものとなっています。プログラム言語には複数種類あり、目的のプログラムに応じて使い分けられています。
- 機械語
- CPUが直接解釈できる言語・データ列。0と1の並び(または16進数表現)で表現されているので、そのままでは人間には理解できません。CPU毎に異なるため、移植性も低いです。ただしIntelのPentiumやMotrolaの68000系など同系列のCPU間では互換性があるように作られています。
- アセンブラ言語
- 機械語に対して、人間にわかるような命令を1対1に割り当てて作られた言語。アセンブラで機械語に翻訳されます。機械語よりわかりやすく、また直接ハードを操作することができる利点があります。しかしコンピューターのハードに関する高度な知識が要求されるため、大規模なプログラム開発には向きません。またCPUに依存するため、移植性が低いという欠点を持っています。
- 高級言語
- アセンブラより更に人間にわかりやすいように設計されたプログラミング言語。高級言語そのものは言語処理系と呼ばれ、インタープリタやコンパイラによって機械語に翻訳され実行されます。またハードには依存しないように設計されており、異なるハードウェア間の移植も比較的容易となっています。
0.3.インタープリタとコンパイラ
高級言語で作成されたプログラムは、インタープリタまたはコンパイラを用いて機械語に翻訳されます。インタープリタはプログラムを1ステップずつ解釈しながら実行していきます。それに対しコンパイラは全ての命令を機械語に翻訳し、実行プログラムを生成するまでしかしません。生成されたプログラムを実行するのは、ユーザーの仕事です。翻訳と実行が1度に実行されるので、インタープリタの方が手軽にプログラミングする事ができます。しかし一般的には、コンパイラによって機械語に翻訳された実行プログラムの方が、インタープリタによる実行より処理が速いです。
インタープリタ系の言語としては「Perl」「Awk」、コンパイラ系の言語としては「C」「C++」などがあげられます。ちなみに「Shell」は「コマンドインタープリタ」、「Java」は中間言語(バイトコード)へのコンパイルが必要な、特殊なインタープリタ言語といえます。 |