<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>Javaとはどんな言語なのか</title><revhistory><revision><revnumber>12</revnumber><date>2009-09-19 11:29:48</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2009-07-27 05:30:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2009-07-27 05:16:14</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2009-07-27 05:11:55</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2009-07-27 05:11:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2008-09-22 01:46:35</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2008-09-22 01:45:50</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2008-09-19 07:13:35</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2008-09-19 07:12:29</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2008-09-19 07:10:25</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2008-09-19 01:36:48</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2008-09-19 01:30:56</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>Javaとはどんな言語なのか</title><!--rule (<hr>) is not applicable to DocBook--><section><title>Javaって何</title><para><ulink url="http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html">Sun Microsystemsの解説ページ</ulink> によると、 <emphasis role="strong">Javaテクノロジーはプログラミング言語とプラットフォームの両方のこと</emphasis> とあります。 </para><para>プログラミング言語だと考えてよいのですが、他の言語とは違う特徴をいくつか持っています。それは次のキーワードで示されます。 </para><itemizedlist><listitem><para>シンプル </para></listitem><listitem><para>アーキテクチャに中立 </para></listitem><listitem><para>オブジェクト指向 </para></listitem><listitem><para>移植可能 </para></listitem><listitem><para>分散 </para></listitem><listitem><para>高性能 </para></listitem><listitem><para>マルチスレッド </para></listitem><listitem><para>堅牢 </para></listitem><listitem><para>動的 </para></listitem><listitem><para>安全 </para></listitem></itemizedlist><para>それぞれの意味は授業の中で学んでいきます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>プログラミング言語いろいろ</title><para>プログラミング言語はたくさんあります。 </para><para>コンピュータが作られた当初は、電子計算機と呼ばれ、プログラムはすべて機械語で書かれていました。 しかし機械語で開発するのは大変なので、数値計算用、事務処理用、記号処理用の言語として、Fortran, Cobol, Lisp が作られました。 この３つの言語がもとになり、新しい考え方をとりいれて次々と多くのプログラミング言語が作られました。 </para><para><ulink url="http://web.lab.hyogo-dai.ac.jp/~masahiko/wiki/moin.cgi/プログラミング言語いろいろ">私が使ったことのある言語</ulink>について簡単に記述しておきました。（学内専用） </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>C言語</title><para>BCPL言語、B言語、C言語と発展してきたのでこんな名前なのです。 開発されたのは1972年ごろです。 </para><para>CはUNIXのOSを書く（移植する）ために作られました。 今ではOSに限らす多くのツールやアプリケーションを記述するのに利用されています。 </para><para>どんなことでも記述できるように、機械語に近い考え方で作られています。 特に、ポインター、共用体、メモリ割り当て関数は機械語の考え方そのものですね。 </para><para>Cが普及した理由の１つは「記述しやすさ」にあります。 1970年代は<emphasis role="strong">構造化プログラミング</emphasis>の時代で、その代表格がCです。 その後にうまれたプログラミング言語の多くはCの影響を受けています。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>オブジェクト指向</title><para>1980年代からはオブジェクト指向の考え方が主流となってきました。 </para><para>オブジェクト指向といえばsmalltalkです。 smalltalkはsmalltalk72、smalltalk76、smalltalk80と４年毎に改定されましたが、 1980年に出たsmalltalk80が有名です。通常はこれを指します。 </para><para>Javaは </para><itemizedlist><listitem override="none"><para><emphasis role="strong">考え方（意味）はオブジェクト指向</emphasis> </para></listitem><listitem override="none"><para><emphasis role="strong">書き方（構文）はC</emphasis> </para></listitem></itemizedlist><para>をもとにしています。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>バーチャルマシン</title><para>Javaはプラットフォームに依存しないで、どんなコンピュータでも実行できることを、目的の１つにしています。 このために、バーチャルマシンという考え方で作られています。 </para><para>一般に、コンパイラは ソースプログラムを入力として 対象となる(特定の)コンピュータやOS上で動作する機械語プログラムを出力します。 </para><para>Javaコンパイラは仮想機械(Javaバーチャルマシン)の機械語(バイトコード)を出力します。 バイトコードはJavaバーチャルマシン(以下JVMという)上で動作します。 </para><para>それぞれのコンピュータ上で動作するJVMを作ることで、同じバイトコードがどのコンピュータでも動作します。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/Java%E3%81%A8%E3%81%AF%E3%81%A9%E3%82%93%E3%81%AA%E8%A8%80%E8%AA%9E%E3%81%AA%E3%81%AE%E3%81%8B?action=AttachFile&amp;do=get&amp;target=java11.png"/></imageobject><textobject><phrase>java11.png</phrase></textobject></inlinemediaobject> </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/Java%E3%81%A8%E3%81%AF%E3%81%A9%E3%82%93%E3%81%AA%E8%A8%80%E8%AA%9E%E3%81%AA%E3%81%AE%E3%81%8B?action=AttachFile&amp;do=get&amp;target=java12.png"/></imageobject><textobject><phrase>java12.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Javaの歴史</title><para>1991年 </para><itemizedlist><listitem override="none"><para>設計、開発開始 </para></listitem></itemizedlist><para>1996年 </para><itemizedlist><listitem override="none"><para>最初のバージョンの公開 </para></listitem></itemizedlist><para>1998年 </para><itemizedlist><listitem override="none"><para>Java2公開 </para></listitem></itemizedlist></section></section></article>