!!! 第一章 Java プログラミングの基礎 !! 1-1. Java とは ! 「高級言語」と「低級言語」 プログラミング言語は大まかに分けて「低級言語」と「高級言語」の二つにわけられます。この高級、低級という言葉はどちらが優れていてどちらが劣る、という意味ではありません。以下にその意味を解説していきましょう。 コンピュータは 0 と 1 で羅列された数字の列で命令を理解し、計算を実行しています。例として、コンピュータの授業中に暇つぶしに使っているマインスィーパ(図1)を見てみましょう。 {{ref_image fig001.png}} '''図1''' 暇つぶしゲーム) もし人間に、このゲームと同じ処理させようとしたらどうなるでしょう? ● まずは9×9=81のマスを用意して、その中に10個の爆弾をランダムにセットする。 ● 準備ができたらゲームをスタートさせよ。 ● プレーヤーは1マスずつ開けるマスを指定してくる。指定されたマスが爆弾でなければ、近接する8マスを調べてその中に含まれる爆弾の数を開いたマスに表示せよ。爆弾であれば爆発せよ(ゲームオーバー)。 ● マスを開けずに、マークするようしてきた場合はマークをつけて、次の指示をまつこと。 ● ・・・云々 というように人間に理解できる言葉で指示することになるでしょう。 では、コンピュータにこのゲームを処理させようとしたら、どうすれば良いでしょう。コンピュータに対して上のように日本語で命令しても、さっぱり理解してくれません。もちろん英語でもイタリア語で命令してもダメです。コンピュータには、コンピュータが理解できる言葉で命令をしてやらなければなりません。それではコンピュータが理解できる言葉とはどのようなものなのでしょう。それは先ほども書いたとおり、0と1から成る二進数です。 マインスィーパの実行ファイルの中身を、「バイナリエディタ」1と呼ばれる特殊なエディタで覗いて見ましょう(図2)。バイナリエディタはコンピュータ向けの言葉で書かれているファイルの中身を表示させることができるものです。このプログラムでは二進数ではなく、人間にもう少しわかりやすい16進数で表示しています。 {{ref_image fig002.png}} '''図2''' 暇つぶしゲームプログラムの中身 どうですか?ひと目見ただけでも、人間には理解不能なことが分かりますね。いや、頑張ればできる人もいますが・・・素人には無理ですね。もし、コンピュータに何かを実行させるために、このような数字の羅列を延々と書かなければならないとしたら、ほとんどの人は「プログラミングがしたい!」なんて思わないでしょう。 そこで考え出されたのが、人間語とコンピュータ語(機械語、マシン語といったりします)の間を仲立ちしてくれる、プログラミング言語というわけです。そして実際にその間をとりもってくれるのがコンパイラです。 プログラミング言語には、コンピュータ語に近いものから人間語に近いものまで様々あります。その中でもコンピュータ語に近いものを「低級言語(低水準言語)」、人間語に近いものを「高級言語(高水準言語)」と呼んでいるのです。 低級言語にはどんなものがあるかというと、マシン語、アセンブリ言語があります。一方、高級言語はというと、BASIC、FORTRAN、C、C++、Perl、Ruby、PHP、etc. たくさんあります。Javaはたくさんある高級言語のうちの一つです。人間語に近いからこそ、我々にもプログラミングがしやすいのです。