Javaってなんだろう?

プログラミング言語Java

実は、われわれがコンピュータ上で、様々なアプリを楽しむことが出来るのは、コンピュータ言語と言われる言語のおかげなのです。これは、コンピュータが理解できる言語で、この言語を用いて、コンピュータに様々な処理を行わせることをプログラミングと言います。アプリの製作者は、その言語を用いて、コンピュータ上でアプリケーションをはじめとする、様々なソフトを作ることが出来るのです。

プログラミング言語は、多数あり、Javaはその中の一つです。ただ、現在、Androidを搭載したタブレットPCやスマートフォンの上で動作するアプリケーションや、ウェブ上で動作するアプリケーションの多くが、このJava言語で記述されています。つまり、Javaは現在使われているコンピュータ言語のうち、主流な言語だと言えます。

その他のプログラミング言語

すでに述べた通り、コンピュータ言語には実にたくさんの種類があるのです。(表0-1参照)その中でも、Javaは、その中の一つです。

表0-1:主要なコンピュータ言語一覧
言語名 特徴
C 現在用いられている主流の言語の中では最も古い言語。多くの言語が、C言語をベースに作られている。
C++ C言語を更に拡張した言語。オブジェクト指向といった考え方に対応。
Java C/C++をベースにして、SunMicrosystemsによって開発された、Androidなどで用いられている言語。
C# Microsoft社がJavaなどをベースに独自に開発した言語。
Objective-C Apple社がC言語を独自に拡張した言語。iPhoneやiPadのアプリ開発に用いられる。

コンピュータ言語の役割

マシン語と高級言語

では、そもそもコンピュータ言語とは何なのでしょう?私たちが、日常何気なく使っているコンピュータですが、実はそのままでは何の役にも立ちません。コンピュータを動かすには、コンピュータにわかる形で命令をしてあげる必要があるのです。

ただ、問題は、コンピュータが理解できるのは、マシン語(機械語)と呼ばれる、人間にしてみれば数値の羅列にしか見えない、きわめて判りづらい言語だということです。この言語を理解するのは不可能ではありませんが大変困難なことです。

そこで考え出されたのが、高級言語という、人間にとって比較的理解し易い文章や記号で構成されている言語を作ることでした。Javaは、そんな高級言語の一つなのです。

コンパイラとインタープリタ

しかし、高級言語はそのままではコンピュータが理解することが出来ません。そこで、これを機械語に変換する必要があるのですが、その方式には大きく分けて、コンパイラと呼ばれるものと、インタープリタと呼ばれるものがあります。

コンパイラとは、高級言語で書かれたプログラム(ソースコードと呼びます)を、すべて機械語に変換し、変換後そのプログラムを動かすという方式です。それに対し、インタープリタは、ソースコードを翻訳しながら実行するという構造になっています。(図0-1)

図0-1.コンパイラとインタープリタの違い
コンパイラとインタープリタの違い

一般に、コンパイラーは、コンパイル作業に時間がかかるものの、全てが一括返還されるため実行速度が速く、インタープリターは、コンパイル作業は要らないものの、変換作業を行いながらの実行になるため、速度はコンパイラーに劣るといわれています。

Java言語ってどんな言語なの?

Java言語の特徴

では、そんなC言語ですが、一体どんな特徴があるのでしょうか?

実は、Java言語は、インタープリター型とコンパイラー型のどちらにも分類できない特殊な言語なのです。その理由は、Java言語の特殊性にあります。通常、どんなプログラミング言語でも、OSやCPUが異なれば同一のソフトを動かすことができません。ところが、Java言語に関しては、Javaが動作する環境であれば、同一のプログラムを動かすことができるという特徴があります。

その理由は、Javaが、直接OS上で動作するのではなく、JavaVM(Javaバーチャルマシン)と呼ばれる特殊な環境で動作するプログラミング言語だからです。

JavaVM

JavaVMとは、OSやCPU上に作られる特殊な仮想のコンピュータ実行環境のことです。いわば、仮想のCPUのようなものです。つまり、WindowsやLinux、MacOSなどといったOSの上に、JavaVMという特殊なマシンがある状態と一緒なのです。

Javaコンパイラは、プログラマーが作ったJavaプログラムを、このJavaVMで動作するマシン語に変換します。しかし、そのマシン語は、実際に存在しない、仮想のマシン語であり、いわばインタープリター言語ともいえるわけです。

そういったことから、Javaは、プログラムをJavaVMのマシン語に変換するという意味では、コンパイラー言語であり、そのマシン語がJavaVMという仮想の環境で動く言語であるということから、インタープリターでもあるわけです。

図0-2.JavaVMの仕組み
JavaVMの仕組み

学習の進め方

このサイトでJava言語の学習を進める方法

このサイトでは、Java言語のプログラミングについて学習します。基本編7日間、応用編7日間の計14日分あります。基本編でだいたいの仕組みがわかるようになっていますが、より高度なプログラミングを学ぶ場合は、応用編を学んでください。

プログラムの入力の仕方

Java言語には、パッケージという概念があり、ここで取り上げるサンプルは、日にちによって、パッケージをわけます。1日目は、day1、2日目はday2といった具合に、パッケージを分けていきます。パッケージ名は、サンプルソースコードの先頭に書かれていますので、それに従ってください。

また、開発環境として想定しているのは、eclipse(エクリプス)と呼ばれる、フリーの開発環境を用います。eclipseの使い方および、パッケージの作り方、プログラムの実行方法については、こちらを参照してください。