一般に大きなプログラムを作るときには,プログラム全体がベターっとしているのは分かりにくいし管理も大変なので,近いもの同士をまとめる,ということをよくやります.まとめられた部分は他のプログラムでもそっくりそのまま使いたかったりするので,まとまりに名前を付けて,その名前でそのまとまりと置き換える,というものです.
手続き型プログラミングだと,一連の処理の流れをまとめてサブルーチンというものにします.スクラッチではブロックを自分で作れるやつです.それから,猫をうごかすプログラムは猫のスプライトの中にまとめて定義するようになっています.いずれも,大きなプログラムを作るときには必須な機能です.
ビスケットでも大きなプログラムがでてきたので,そろそろ複数のメガネをまとめる仕組みが欲しくなってきました.たとえば,先日の2進10進変換のプログラムですが,必要は絵の部品は
- 制御:2個
- 2進数:2個
- 10進数:10個
メガネの内訳は
- ユーザインタフェース:2個
- 全体の制御:2個
- 2進10進変換:6個(これは変換したい2進数の桁の数だけ必要)
- 10進数の足し算:55個
となっています.この中で10進数の計算はこの先もいろいろと使いたいので,それをひとまとめにして,後から使いたいときに持ってこれるようにできると良いですね.
実際に,この2進10進変換のプログラムを作ったときは,以前作った10進法の足し算のプログラムをコピーして,不要な部分を削除して,それをベースに部品やメガネを追加してゆきました.
不要な部分をあらかじめ削除しておいて,後から(削除しないでも)すぐに使えるように保存しておく.そしてそれを呼び出して,自分のプログラムの中に挿入できる.こういうのをライブラリーといいます.自分のプログラムの中に呼び出したまとまりは一つのアイコンで表示されるけど,開いたらその中身をいつでも見ることができる.そんな形になるのでしょうね.
誰かが作ったライブラリーをそのまま使わせてもらう,というのもありはありですが,やはり自分でライブラリーをひとつづつ積み上げて行ける方がビスケットらしいですね.10進法の計算なんて15分くらいで作れるわけですから.ライブラリーを作ることも楽しいですし.
となると,自分のライブラリーを管理する仕組みが必要そうです.