LOGOの入手
1 LOGOの入手
1) LOGOとは
LOGOはLISPの兄弟言語と言われています。使ってみると、確かに言語仕様はLisp的な部分があります。
しかし、Lispが専門家(人工知能研究)向けなのに対し、LOGOは子供向けで、非常にプログラムしやすく
できています。
特徴としては、Lispの兄弟言語と言われるだけあって、リストの処理といった機能が充実している点が第一点
でしょう。Lispと同様なことが可能になっています。
第2点目は、LOGOオリジナルの機能と言えるでしょうが、直感的なグラフィック描画のコマンドが充実している
点です。この点が、子供の教育用として評価されている点です。
更に、カーソルが亀の形をしている点も、他の言語には見られない特徴です。
プログラム初心者がはじめて取り組む言語としても、オススメです。また、他の言語ユーザーが、人工知能
言語に手を出してみようと言う時の入門編としても、とりつきやすいでしょう。LOGOが使えれば、Lispも
理解しやすいでしょう。
2) LOGOの入手
フリーウェアで提供されているLOGOはいくつかあり、探せば容易に見つかるでしょう。
おじさんは、ロゴ坊(兼宗氏)というフリーウェアのLOGOを使っています。Windows上で使えます。
ロゴ情報室からダウンロードできます。Vectorからもダウンロードできるはずです。
2 ロゴ坊を使って見る
(1) インストール
ロゴ坊のWindows版は、lb210.exe のようなファイル名になっていますので、できるだけ最新バージョン
を入手してインストールしましょう。ファイル名のlbの後の数字がバージョン番号のようです。
インストールはほとんど自動的に行われますので、心配ないでしょう。
インストール完了すると、通常であればLogobフォルダが作成されているはずです。Logobフォルダの中の
主要ファイルは以下の通りです。
logob.exe: 本体です。
*.bmp: タートル画像ファイルです。
dio32s.dll: I/O制御用ライブラリです。
startup.lg:
スタートアップファイルです。ロゴ坊起動時に読み込みます。
lbedit.exe:
専用のエディタです。プログラムを作るときに使用します。
*.lg: startup.lg以外の「.lg」の拡張子をもつファイルはサンプルプログラムです
(2) 正方形を作って見る
ロゴ坊を起動すると、startup.lg
を読みこんで、亀を表示した後、
1>
と表示して、コマンド入力待ち状態になります。
では、まず正方形を描いてみましょう。
おっとその前に、画面にいろいろ表示されているので、画面をきれいにしましょうか。
1> clean
とタイプしてリターンキーを押して下さい。画面がクリアされたと思います。
それでは、正方形を描いてみましょう。
以下の通り、forward 100 と right 90
を交互のタイプしてみて下さい。
亀がノロノロ動いて正方形ができるはずです。
forward
は「まっすぐ進め」という命令です。その後の数字は進む距離です。進む距離の1単位はLOGOによって
異なりますので、それぞれのLOGOで確認して下さい。
right
は亀の向きを右方向に変える命令です。数値は度数を表します。
これらのforward, right
といった命令は、日本語で と書くことも可能です。
日本語の命令が使える点はロゴ坊の特長です。
(3) プログラムを作る。手続きの定義
先ほどは1行づつ命令をタイプしました。今度は、上の正方形を書くプログラムを作ってみましょう。
LOGOでプログラミングするというのは、他の言語のようにソースファイルを記述するというのとはとは若干違い、
「手続きの定義をする」という作業になります。
ロゴ坊では、まず
1> TO RECT
とタイプしてみて下さい
すると、ロゴ坊のエディタが自動的に起動します。
エディタ上には
TO RECT
END
が既に記述されていますので、以下のようにコードを追加記述して、保存して下さい。
to rect home clean pendown forward 100 right 90 forward 100 right 90 forward 100 right 90 forward 100 end |
TO
の後には「手続き名」を記述します。ここではRECTにしました。
homeは、亀を画面の中央に移動させるコマンドです。
pendownはペンを下ろせ(描画できる状態にしろ)という命令です。
保存するファイル名は何でも構いませんが、手続き名と同じファイル名が良いでしょう。
おじさんは、rect.lg
というファイル名にしてあります。
では、このrectを実行してみましょう。
まず、ファイルをロードします。
>load rect
とタイプして下さい。rect.lg が読み込まれますので、
>rect
と手続き名をタイプして下さい。亀が正方形を描くはずです。
これはプログラムと言っても構わないと思いますが、LOGOでは”手続きを定義した”と言います。
他の言語でいうところのプログラムと違う点は、定義した手続きは、ユーザーが作った新たな命令
だという点です。一度ロードすれば、自由その手続きを命令として使えます。
このように、自分にとって便利な命令を自由に作れる(定義する)、使える点がLOGOの大きな特長です。
(Lisp系の言語の大きな特長です)
(4) 多角形を描く
それでは、多角形を描く手続きとして "rectn"
を作ってみます。
rectn
は多角形の角の数を引数として与えて呼び出すタイプの手続きとします。
すなわち
>rectn 6
とすると正6角形を描きます。
コードは以下の通りです。
to startup print [ 「rectn 8」のように実行すると、正8角形を描きます] end to rectn :n home clean repeat :n [forward 360 / :n right 360 / :n] end |
to startup ........... end
の部分は、ファイルがロードされた時点で実行されます。
LOGOでは変数名には : をつけます。
LOGOでは TO 手続き名
の後に変数を記述すると、それが引数となります。
このプログラムでは手続きを呼ぶ時の引数として変数 :n
を使っています。
repeat は繰り返しの命令です。
repeat :n [ .........]
と記述すると、[ ] 内の命令をn回繰り返せという命令になります。
これで、正N角形が描けます。Nが大きくなれば、円に近づいていきます。
以下、実行例です。