魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

99 BASIC のすすめ(1)

99 BASIC は前々回、前時代的 BASIC として紹介したばかりだけど、もう一度とりあげてみたい。なお、最初に述べておくが、この 99 BASIC は Windows 7 でも使用できる。

【 99 BASIC - http://www.sagami.ne.jp/tadaka/99Basic/

f:id:fxrobot:20131106034626j:plain

考えてみると前時代的という呼び方は少しバカにしたような印象を受けるかもしれない。ぼくにはそういう意図はないので今後は「ガラパゴスBASIC」と呼ぼうと思う(違わないよ)。:P

このガラパゴスBASIC には、ぼくのプログラミング言語に対する「素朴」というぼくにとって重要な概念の元となっているのだと思う。つまりこの「素朴」は、ぼくがプログラミング言語を選ぶときの重要な基準と言うことなのだ。ぼくが Python を選んだのもそれによるところが大きい。

小さな定義や統一性、それに美意識、具体的には APL、HaskellScheme、Io、Lua などにそれを感じるが、それよりも、それぞれのプログラマの個人的な趣味を越えた「素朴」とか妥当性、大衆性という観点がプログラミング言語にとってはより優先されなくてはならないと思うのだ。ここで、ぼくは、それらを「素朴」という一言で代表させている。

さて、プログラミングをこれから覚えようと思っている人はいるだろうか。ぼくはそれらの人たちに「99 BASIC」をお勧めしたい。99 BASIC と決め打ちしているが、それぞれにとってもっと好ましい処理系があればそれで構わないが、Windows を前提にすれば 99 BASIC が望ましく思える。Mac だと JBASIC(http://sourceforge.net/projects/jbasic/)や Chipmunk BASIC(http://www.nicholson.com/rhn/basic/)がよいかもしれない。ぼくの場合は、Windows 7 で 99 BASIC Version 1.19 を使っている。

ところで、Python は易しい言語と言われるし、素朴な面を持つモダン言語と言える。入門に最も最適という見方もできるが、Python 全体を見れば、プログラミングへの入門という要素以外に理解しなければならない概念も多く、とくに全くの入門者にオブジェクト指向が本当に理解できるとは思えない。プログラミングの楽しさを知る前に挫折してしまう可能性は結構高いのではないか。

実は、ぼくの長男はプログラム開発のプロとして必要に応じた最前線のプログラミング言語を使っている。個人的には C# が好みのようだ。ぼくはその長男が中学生のときに「BASIC/98」(http://www.dennougumi.co.jp/products/basic98/ver5/)を与えた。BASIC/98 の説明書と実際に動く処理系によって、プログラミングの楽しさを知り、そのうえ BASIC/98 を自分のものにした。長男はその経験がなければ大学でも苦労をしただろうし、プログラマには成れなかったのではないかと言っている。

実をいうと、ぼくもプログラミングの楽しさを BASIC によって教えられたのだ。その後、多くのモダンな言語を学んだが、BASIC を覚え、使った経験は今でも重要なものと感じている。

これで、ぼくが 99 BASIC をお勧めする理由を述べることができたが、それじゃぁ、使ってみようという人のために 99 BASIC の特徴と導入方法を説明したい。

99 BASIC は N88-BASIC と MSX-BASIC の仕様に影響を受けた BASIC で性能も高い。以前は有料ソフトウェアだったようだが、現在はフリーソフトとして公開されている。

ぼくが気にいっている 99 BASIC の機能は「リストプロテクト」。作ったプログラムを「save "name",p」のように保存すれば、他者がそのプログラムの内容を見ることができない。「load」しても「list」できないし、普通に「save」することもできない。(今、この意味がわからなくても問題ない)

また、プログラムソースの拡張子「.b99」を「99 BASIC」と関連づけておけば、作ったプログラムを、例えば「name.b99」をダブルクリックすることで、プログラムを直ぐに実行することができる。実用性も高いと言える。

次の画像は、99 BASIC の環境を設定できる画面だ。

f:id:fxrobot:20131105094240j:plain

ぼくは「2倍の表示倍率」で使用している。

99 BASIC の仕様については 99 BASIC のヘルプを見ればわかるが、BASIC言語そのものに入門したい人は、大きな本屋に行けば今でも BASIC言語(ガラパゴスBASIC)の本が置いてあるので、それを手に入れて勉強するのがよいと思う。その他、ウェブで「BASIC言語入門」とか「N88BASIC」といったキーワードで検索してみてもらいたい。

f:id:fxrobot:20131105045750j:plain

最後になったが、ガラパゴスBASIC の特徴は「ダイレクトモード」が使えることだ。これは、起動した状態の画面上でほとんどすべてのことをコマンドを使って行うことができるということだ。このダイレクトモードという閉じた世界だけで、99 BASIC を使用できるので、99 BASIC の言語仕様以外のことで煩わされることがないのだ。そして、99 BASIC は難しい概念がほとんどない素朴でとても易しい言語なのだ。

99 BASIC を起動すれば直ぐにプログラムの作成、修正、保存、読み出し、などが同じ画面だけで直ぐに行うことができる。

auto        プログラムの行番号を自動で付けてくれる。
save        作ったプログラムを保存する。
run          作ったプログラムを実行する。
new        プログラムをすべて消去する。
files        プログラムの一覧を表示する。
load        プログラムを読み込む。
list          プログラムのリストを表示する。
renew     プログラムの行番号を新しく付け直す。
cls           画面をクリアする。
system    システム(99BASIC)を終了する。

などのコマンド(指令)が可能であり、ぼくなどは反射的に直ぐにキーボードから打ち込んでしまうが、対応するファンクションキーを押すことでもコマンドを実行できる。

あと、99 BASIC に必要なのは「よい入門書」だけなのだ。完全に初心者・入門者の立場に立って、ぼくがこれをウェブで書いてもよいという気がするのだが、他にやることも多く、残念ながら今のところはちょっと無理だと思う。なお、探しては見たのだが、99 BASIC のよい入門サイトは見つからなかった。

以下は参考まで。

・ BASIC 入門(全11回)http://dotinstall.com/lessons/basic_basic