プログラムってどんなもの
プログラムってどんなものでしょうか。
コンピュータのプログラムを考える前に、日常生活で目にすることのあるプログラムを見てみましょう。 音楽会のプログラム、運動会のプログラム、大学祭のプログラムなどイベントや行事のプログラムがありますね。
たとえば運動会のプログラムにはこんなことが書かれています。
2008年度地区運動会プログラム 日時 : 4月27日 午前10時より 場所 : 小学校グラウンド 1.開会式 2.ラジオ体操 3.障害物競走 4.玉入れ 5.地区対抗リレー
1行目にタイトル「2008年度地区運動会プログラム」があります。
2、3行目には「日時」と「場所」が書かれています。
4行目以降は運動会の内容で、行われる順番に記述されています。
他の行事のプログラムでも同様に、
- 1)タイトル
- 2)基本的な情報
- 3)行われる内容を時間順に並べたもの
でできています。
ではコンピュータでのプログラムを見てみましょう。
int main(int argc, char* argv[]) { int tate, yoko, nmax; tate = atoi( argv[1] ); yoko = atoi( argv[2] ); nmax = 0; init(); move(0, 0, 1, 3); }
これも
- 1)タイトル
- 2)基本的な情報
- 3)行われる内容を時間順に並べたもの
が書かれているのように見えますね。その通りです。
プログラムは 行うことがらを順番どおりに記述したもの なのです。
詳細なプログラム
上で見た運動会のプログラムは簡単なものでしたが、スタッフ用のプログラムにはもっと詳しい情報が書かれています。
集合時間は何時、道具の準備、グラウンドの整備、各競技の進行の仕方などです。
例えば、障害物競走の部分は
- 選手は入場門に集合
- 整列、点呼
- 障害物を配置
- 選手入場
- ゴールの準備
- スタートラインに整列
- スタートの合図
- …
のようになるでしょう。
詳細なプログラムがちゃんと出来ていればスムーズに進行できるでしょうし、スタッフが急に変更された場合でもすぐに対応できるでしょう。
ハードウエアとソフトウエア
元々は計算機分野の用語で、ハードウエアは計算機の装置自体を、ソフトウエアは計算機を動かすための命令群などを指していました。
現在はコンピュータに限らずハードウエア、ソフトウエアという言葉を使います。
ハードウエアは形ある「もの」そのものを指します。 ソフトウエアはものの「使い方」などのことを言います。
文字通りハードウエアは硬いもの、ソフトウエアは柔らかいもののことです。 一度作ると簡単には変更できないものがハードウエア、比較的簡単に変更できるものがソフトウエアと考えると良いでしょう。
プログラム
上で述べたことを表にするとこのようになります。
コンピュータ
一般
ハードウエア
装置
もの
ソフトウエア
プログラム
使い方
使い方を知っていないとパソコン(コンピュータ)は使えません。 表の中の「使い方」とある部分がこのことに対応しますが、これは人が使うときに「人が使い方を知っている」ということです。
表の中の「プログラム」とある部分を同様に考えると、 動作の仕方をコンピュータが知っているということになります。
つまり「プログラミングとは動作の仕方をコンピュータに教える」ことです。
いろいろなプログラミング言語
プログラムを作るにはプログラミング言語が使われます。 プログラミング言語にもさまざまな種類があります。
用途により使い分けられています。
私が最初に習ったのは
- Fortran
で、その後
- Cobol, PL/1, Basic, Pascal, Logo, Smalltalk, Lisp, Scheme,
- C, Snobol, Awk, Perl, Prolog, Python, Java, Javascript
を覚えました。
どれか1つをマスターすれば、他の言語は簡単に覚えられます。
ECMA script
この授業では ECMA script について学びます。
ECMA script はブラウザで動作する javascript のコア部分に対応します。
ECMA script + ブラウザ対応部分 = javascript
と考えるとよいでしょう。
なお javascript は Netscape社の付けた名前です。 他の会社のもの、他のブラウザでは別の名前のこともあります。
また java と javascript は名前は似ていますが全く別のものです。 どちらもプログラミング言語なのでややこしい話です。 java は sun社が無償で提供しています。
Rhino
ここで使用する Rhino(ライノ)は Javaで書かれたjavascriptの処理系です。
授業ではこれを利用します。