== Javaとはどんな言語なのか == ---- === Javaって何 === [[http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html|Sun Microsystemsの解説ページ]] によると、 '''Javaテクノロジーはプログラミング言語とプラットフォームの両方のこと''' とあります。 プログラミング言語だと考えてよいのですが、他の言語とは違う特徴をいくつか持っています。それは次のキーワードで示されます。 * シンプル * アーキテクチャに中立 * オブジェクト指向 * 移植可能 * 分散 * 高性能 * マルチスレッド * 堅牢 * 動的 * 安全 それぞれの意味は授業の中で学んでいきます。 ---- === プログラミング言語いろいろ === プログラミング言語はたくさんあります。 コンピュータが作られた当初は、電子計算機と呼ばれ、プログラムはすべて機械語で書かれていました。 しかし機械語で開発するのは大変なので、数値計算用、事務処理用、記号処理用の言語として、Fortran, Cobol, Lisp が作られました。 この3つの言語がもとになり、新しい考え方をとりいれて次々と多くのプログラミング言語が作られました。 [[http://web.lab.hyogo-dai.ac.jp/~masahiko/wiki/moin.cgi/プログラミング言語いろいろ|私が使ったことのある言語]]について簡単に記述しておきました。(学内専用) ---- === C言語 === BCPL言語、B言語、C言語と発展してきたのでこんな名前なのです。 開発されたのは1972年ごろです。 CはUNIXのOSを書く(移植する)ために作られました。 今ではOSに限らす多くのツールやアプリケーションを記述するのに利用されています。 どんなことでも記述できるように、機械語に近い考え方で作られています。 特に、ポインター、共用体、メモリ割り当て関数は機械語の考え方そのものですね。 Cが普及した理由の1つは「記述しやすさ」にあります。 1970年代は'''構造化プログラミング'''の時代で、その代表格がCです。 その後にうまれたプログラミング言語の多くはCの影響を受けています。 ---- === オブジェクト指向 === 1980年代からはオブジェクト指向の考え方が主流となってきました。 オブジェクト指向といえばsmalltalkです。 smalltalkはsmalltalk72、smalltalk76、smalltalk80と4年毎に改定されましたが、 1980年に出たsmalltalk80が有名です。通常はこれを指します。 Javaは . '''考え方(意味)はオブジェクト指向''' . '''書き方(構文)はC''' をもとにしています。 ---- === バーチャルマシン === Javaはプラットフォームに依存しないで、どんなコンピュータでも実行できることを、目的の1つにしています。 このために、バーチャルマシンという考え方で作られています。 一般に、コンパイラは ソースプログラムを入力として 対象となる(特定の)コンピュータやOS上で動作する機械語プログラムを出力します。 Javaコンパイラは仮想機械(Javaバーチャルマシン)の機械語(バイトコード)を出力します。 バイトコードはJavaバーチャルマシン(以下JVMという)上で動作します。 それぞれのコンピュータ上で動作するJVMを作ることで、同じバイトコードがどのコンピュータでも動作します。 . {{attachment:java11.png}} . {{attachment:java12.png}} ---- === Javaの歴史 === 1991年 設計、開発開始 1996年 最初のバージョンの公開 1998年 Java2公開