Java I 第2回 (9/22)
この講義(Java I)の目的 プログラミングの入門 「開発環境」は Java 火曜日:1限目 講義、2限目 実習 木曜日:3限目 講義、4間目 実習 (9月下旬~11月上旬 11月中旬以降は Java II)
本日(第1回)の目的 プログラムとは何か? プログラムを作るには? 「プログラム言語」とは? プログラムの「開発」とは?
プログラムとは何か? コンピュータへの命令(仕事の指示) その方法は多様(音声、マウスなど) 命令を文字で表現 例) cp file1 file2 (コピーしろ。 file1 を file2 に) <h1>Java</h1> (見出しの内容)
プログラムの言葉(言語) ルールが必要(文法) 言語は1種類とは限らない (日本語、英語、ロシア語・・・) 人間の言葉と同じとは限らない コンピュータのための言語(機械語) 音楽の「音符」
プログラムとソフトウェア ソフトウェア OS(オペレーティング・システム) アプリケーションソフト ソフトウェアはプログラムによって記述 「ソフトウェア」は製品全体 「プログラム」はその一部
プログラムはどう作られる? プログラムを「書く(記述する)」 文章を書く、作曲などの作業と共通 (プリントや雑誌の解説) 通常はデジタルデータとして保存 「ソースファイル(source file)」 コンピュータに理解できるように 「翻訳」が必要な場合も
日常の言葉との比較 「プログラム言語」vs「自然言語」 厳密で少ないルール あいまいさはない 1文字の違いで全く異なる意味 「記号」が重要な働き +, -, { }, ( ), : ; /
プログラムの記述の例1(HTML) <h1>Java</h1> <p> Let’s begin! <body> <h1>Java</h1> <p> Let’s begin! </p> </body>
プログラムの記述の例2(Java) public static void main( String[] a ) { public class Hello { public static void main( String[] a ) { System.out.println( “Hello!” ); }
プログラムの「開発」 「ソースの編集(edit)」作業=「記述」 ソースファイルの処理 「前処理」、「コンパイル」 プログラムの実行テストと「デバッグ」 製品化 アフターケア、バージョンアップ
「開発環境」とは? プログラムを開発する時に利用される ハードウェア、ソフトウェア 例) Linuxのパソコンを利用 エディタ、コンパイラ、インタプリタ 開発支援ソフトウェア
実習の例で見ると マシンはパソコン(実行環境と同じ) OSはLinuxまたはWindows エディタ – vi, メモ帳など コンパイラ、インタプリタ Java, C, Peal, Shell など
本日の実習のポイント 開発環境の確認と復習 UNIX(Linux) のコマンド mkdir, cp, mv, vi vi エディタの利用 文字の挿入と削除 コピー&ペースト、ファイルの保存 メールによる課題の提出
Javaの特徴、開発環境 Javaとは何か? Javaの言語としての特徴 Javaの開発環境 開発の基本手順
Java とは何か? プログラミング言語としてのJava インターネット時代の新しい言語 優れた開発効率 実行環境の「標準」としてのJava 携帯電話からスーパーコンピュータまで 家電製品もネットワーク化
Javaは誰が作っているのか? Sun Microsystems 社の製品 http://java.sun.com/ http://java.sun.com/ 開発環境は無償で提供(対MS戦略) 「オープンソース」的な成果も採用
Java の名前の由来 コーヒーの品名(原産地の地名) 稚内にある「日本初のコーヒー」碑
Javaの歴史 1995 α版、β版、HotJava(アプレット) 1996 JDK1.0 1997 JDK1.1 (本格的開発言語へ) 1998 Java2, 3つのJava(J2SE,J2EE,J2ME) 1999 J2SDK1.3 2001 i503にJava搭載 2002 J2SDK1.4 2004 J2SDK5.0 (言語仕様拡張) 2005 Java誕生10周年
Javaの祖先? C (1970) 手続き指向、アルゴリズムの構造化(関数、ループと条件分岐)、データ型の導入(原始型と構造体)
Java登場の背景 C++の機能の肥大化の弊害 開発者の負担軽減 教育コストの軽減 シンプルでかつ多様な環境に対応できるオブジェクト指向言語
「オープン」な性格のルーツ Sun Microsystemsの戦略の要 仕様の公開、開発環境の無償配布 背景に UNIX文化、オープンソース運動の影響 インターネットの普及 (異機種・異OSのネットワーク)
最初のJava (1995) α、β、JDK 1.0 8個のパッケージ:java.applet, java.awt, java.awt.image, java.awt.peer, java.lang, java.io, java.net, java.util HotJavaブラウザとアプレット 玩具? 入門教育用には最適だった
実用的な開発言語へ (1997) JDK 1.1 国際化対応、Unicodeの採用 セキュリティ機能の強化 JavaBeans RMI (分散オブジェクト) Jarアーカイブ
拡大する応用範囲 (98-99) Java 2 の登場 (J2EE, J2SE, J2ME) 基幹システムから携帯電話まで 「ミドルウェア」の提供 単なる言語ではなく実行環境の標準
サーバサイドの標準(2000以降) XMLとの融合 B2BとWebサービスの普及 システムの違いを越えてサービス提供 サービス提供の自動化
Javaの現状と将来(2005現在) J2SDK 5.0で大きな言語仕様拡張 (1つの曲がり角?) 新しい開発スタイル より効率のよい開発 各種フレームワーク 開発ツール EOD(Ease of Development)
現在のJavaの存在 インターネット上の標準言語 (特にサーバサイド) 異なるシステム間に共通の実行環境 ソースコード共有の新たな運動も apache.org, eclipse.org
言語としてのJavaの特徴 オブジェクト指向(Object Oriented) 仮想マシン(JVM)による実行 スレッドによる並列処理 簡潔な言語仕様 豊富なクラスライブラリ 開発環境は無償、ソース公開
Javaでプログラミングする 環境は自由 (UNIXでもWindowsでも) 基本開発環境はSunから (コマンドラインの操作) ドキュメントは豊富 (稚内北星も提供)
Javaの開発環境の構成 Java仮想マシン(JVM) Java コンパイラ その他のツール(jarなど) 標準クラスライブラリ (java.awt, java.net など)
Java による開発手順 クラスの設計 (ソースファイルの記述) コンパイル (バイトコードの生成) 実行 (仮想マシンへのロード)
ファイル名とコマンドのルール ソースファイルは「クラス名+.java」 コンパイラ javac の引数にソース名 コンパイルの結果バイトコード生成 そのファイル名は「クラス名+.class」 仮想マシン java の引数はクラス名
サンプルソース: Welcome.java public class Welcome { public static void main(String[] av){ System.out.println( "Welcome!" ); }
コマンドラインの実行例 ソース Welcome.java を編集 javac Welcome.java java Welcome
Javaと開発ツール 開発ツールの「標準化」を意識 (JavaBeans、Ant) 無償の開発ツールが「標準」に? (Eclipse) Webアプリケーション用の開発ツール (Ease of Development の考え)