土曜日, 4月 01, 2006

ドリトルはオブジェクト指向言語

ドリトル」はオブジェクト指向の言語だ。何でもオブジェクトとして扱う。LOGO譲りの、タートルグラフィックを描いてくれる亀さん(タートル)もオブジェクトだ。

オブジェクト指向の言語では、このオブジェクトメッセージ(まー、命令です)を送ることでプログラムを作っていく。

「ドリトル」では、タートル、タイマー、ボタンなどのオブジェクトがはじめから用意されている。各々のオブジェクトは(初期値)と能力(どんなことができるか)を持っている。

タートルオブジェクトは、黒という色の値(のペン)を最初から持っていて、ペンを持っている状態(ぺんあり)のタートルに歩くというメッセージ(命令)を送ると黒い線で軌跡が残る。

オブジェクト指向言語の最大の特徴は、このオブジェクトを複数作ることができることだ。そのために、オブジェクトに何かをさせる場合は、まずオブジェクトの分身(インスタンスと言うんだけど、こうれはどうでもいいです)を作らないといけない。そして、この分身を区別するために名前を付ける。

これは、実際は次のようにして行うのだ。「タートルという名前のオブジェクト作るというメッセージを送る」プログラムを書く。

オブジェクトにメッセージを送るやり方(文法)は次のようになっている。

オブジェクト!引数… 命令。

タートルというオブジェクトに黒ペンという名前を付けて分身を作るプログラムは、従ってこうなる。

黒ペン=タートル!作る。

黒ペンが分身(インスタンス)の名前、タートルがオブジェクトの名前、作るがメッセージ(命令)だ。

分身ができたら、この分身にメッセージ(命令)を送ることができるようになる。

黒ペン!100歩 歩く。

100歩が引数(パラメータ)、歩くがメッセージ(命令)だ。

これで、前回書いたプログラムの構造(文法)が一応わかったと思う。ということで、今日はちょっとだけ、これを発展させる。

分身はいくつでも作ることができるから、黒ペンの他に、赤ペンを作ってみる。

赤ペン=タートル!作る (赤)線の色。

(赤)というのが引数で線の色がメッセージ(命令)だ。オブジェクトに送るメッセージは、このように複数書くこともできる。(メッセージのカスケード)

タートルの初期値は右向きになっているから、赤ペン方を90度左回転させて上向きにして歩かせてみる。

ということで、下のプログラムを編集画面に貼り付けるか、自分で編集画面に入力してください。(自分で書いた方が覚えるかも)

//--------- ここから ----------
黒ペン=タートル!作る。
赤ペン=タートル!作る (赤)線の色。
黒ペン!100歩 歩く。
赤ペン!90度 左回り 100歩 歩く。
//--------- ここまで ----------



実行!ボタンを押すと下のような実行画面が出ると思う。