BASIC言語と言っても
プログラミング言語検証
北海道苫小牧東高等学校 矢嶋 裕之
はじめに
本人そして親からの強い依頼があり、半年前から本校のパソコン同好会の一人の生徒とプログラミングやアルゴリズムの学習を始めた。私自身にとっては大学時代に盛んに学んでいたことだが、新教科『情報』の実施を前に、生徒と一緒に復習することになるとは思ってもいなかった。加えて、ワープロソフトや表計算ソフト、そして、インターネットとソフトを利用することが中心となってしまった最近のパソコン利用の中で、プログラムを自分で作るのは何年ぶりであろうか。そんなことを考えながら大昔のようにBASIC言語をはじめとした数種のプログラミング言語での実習が開始された。ところが、大昔と違って『BASIC言語がない?!』ことに気がついた。そして、あらためて周囲をよく見てみると現在の数学A、数学B、数学Cでも『死語』とされている昔のままのBASIC言語が用いられている。そして、新教科『情報』でもアルゴリズムの学習の際に用いられている最も基本的言語は(教科書上は)このBASIC言語である。大昔のように『スイッチ オンBASIC』型パソコンが皆無になっている現状にもかかわらずである。BASIC言語を用いてのアルゴリズムの学習は、実習も含めて考えたときに果たして機能するのであろうか。本稿は、このように生徒のためにBASIC言語での実習をしようとしたことを起点として、最近、考えたことをまとめたものである。
第0章 N88−日本語BASIC(86)が使えない、という現実
実は冒頭で紹介した生徒は、現在、今年の夏の高専(高等専門学校)の編入試験に向けて勉強している。その生徒への指導の中で私は、現在のノート型やタワー型のパソコンの場合、N88−日本語BASIC(86)(以下、N88BASICと略す)が内蔵されていないという現実を再認識することとなる。『だって、インターネットを利用するためのパソコンになっちゃっているっしょ』(生徒の弁)という言葉に代表されるように、今の中高校生にとってパソコンとはワープロや表計算で利用したり、メールのやりとりやインターネットでのサーフィンなどで利用する『家電』として位置づけられている。今から約30年前から中型や大型の電子計算機を使い始め、自宅に持ち帰れるパソコン(当時は、マイコンと言っていたが)の出現に胸をときめかせていた我々とは四半世紀以上の時代差がある、位置づけだって違うのは当たり前かもしれない。生徒の指導のためとは言え、プログラミング言語を用いてプログラムを作ろうとしてみると、大変不便になっていることを自分の問題として理解したのはそのときであった。(もちろん、十進BASICなどすぐ使える物が(これらについては後述))『何かあったよな』という思いはあったがすぐには思いつかないので、大昔のパソコンを展示しているパソコン教室の片隅から富士通のパソコンを引っ張り出し、それを使って生徒にアルゴリズムとそのプログラミングの基礎力を養う学習を開始したのであった。(ちなみに、私が以前まで使っていてN88BASIC言語が使えるパソコンは、現在、小4になる娘のおもちゃになっている(お絵かきとワープロで利用か?))。
【 本校パソコン教室内の展示コーナー 】
私の自宅には娘が使っている旧式のパソコンを含め、ノート型やタワー型を合わせて6台パソコンがあり(さながらパソコン博物館のように)、各部屋に1台以上のパソコンが置かれている。そのうち、約半分のパソコンでN88BASICが今も使えるため、N88BASICが使えるとか使えないとかを意識することは今までにほとんどなかった。しかし、学校ではN88BASICが使えるのは私物で持ち込んだ富士通のパソコンを含めても2台しかない。そして、さらにまともに使えるのは1台のみである。この旧型のパソコンであれば教科書で例示されているBASIC言語で書かれているプログラムをそのまま実行できる。しかし、最近のパソコンではBASIC言語は標準装備されていない。そのため、現在では多くの方が、十進BASICという文教大学の白石和夫先生が開発したものを利用しているようです。
第1章 十進BASIC と 教科書にあるBASIC
フリーで入手できるこの言語により、手軽にWindowsの環境下でもBASICで書かれたプログラムを実行できるようになりました。そして、過去の数実研の研究会の際にも、中村文則先生や早苗雅史先生のレポートで数多くの実践例や報告などがなされています(ですから、十進BASICの良さのアピールなどは、ここでは省略します)。私もつい最近までは、『どうしても実習しなければならなくなったら、この十進BASICを利用すればいい』と簡単に思っていました。
【 数学Bの教科書より 】
ところが、教科書にあるBASICプログラムは、構造化という概念さえなかった旧規格の時代に使われていた文法のままで、そういう意味ではMicrosoft Basicに近いと言えます。一方の十進BASICは基本的にはJIS Full BASICに基づいているのでいくつかの命令文がそのままでは使えません。そのため、十進BASICで、GOSUB 〜 RETURN文を使う場合など、いくつかの命令文を使用する場合は、下のようにオプションから文法を選択し、切り替える必要があるのです。教科書を使ってBASIC言語を学ぶ者はほとんどが初心者なため、私にはこの文法の切り替えが不便に感じられたのです(慣れれば何ということもないと思いますが、その頃には、多くの者はVisual Basicの方がいいと思い始めていると思います)。このようなことを、生徒を教えている間に強く感じられ始めたため、初心者でも教科書のプログラムをそのまま実行することのできる物がないかと思い始めたのです。
【 オプション設定で文法を切り替える 】
第2章 使える言語と使えない言語、こんなにあるBASIC言語
私が高校時代から大学にかけて、自宅で勉強していた(実習できる環境が整ったのは、大学に入ってからだが)BASIC言語は、構造化される前の最も初期のBASIC言語で(その意味からすると、今のTrue BASICに近い)、一番最初に買った本にはカタカナも載っていないプログラミングしかありませんでした(日本で発行された書籍ではないから当然ですが(笑)。でも、大学で一番最初に使えたパソコンでもカタカナは使えなかったから、そういう不運な時代だったと思っています)。前章で取り上げた十進BASIC以外に、フリーなBASIC言語にはどのような物があるのか調べてみました。驚いたことに、BASICと名の付く言語がいかに多いことか。この章では、インターネットで探せたサイトに載っていた各種BASIC言語について、(数が多いので)名称だけを紹介し、次章で述べる私の結論に移行していきたいと思います。
- True BASIC
- BASIC/98
- Bywater BASIC
- Chipmunk Basic
- cbasPad Tiny Basic
- CZ−8FB01
- F−BASIC
- F−BASIC 386
- F−BASIC95、F−BASIC97、F−BASIC V6
- freeBASIC
- FutureBASIC
- GAME BASIC for SEGASATURN
- Gnome Basic
- HTBasic
- Ko−BASIC
- Liberty BASIC
- LightGamePrograming
- MSX BASIC
- N−BASIC
- N88−BASIC
- N88−日本語BASIC
- N88−日本語BASIC(86)
- O’Basic
- PB−110シリーズ用BASIC
- PC−E500シリーズ用BASIC
- PhilCockroft’s Basic
- PowerBASIC
- Quick Basic、QBasic
- REALbasic
- ScriptBasic
- UBASIC
- Visual Basic
- Visual Basic for Applications
- Visual Basic Scripting Edition
- Yabasic
- X−BASIC
- ファミリーベーシック
- ぺけBASIC
- 十進BASIC
私と同年代の方で、昔のマイコン時代からプログラムを組んできたという方には、懐かしいたくさんのBASIC言語名の羅列だったのではないでしょうか。実は、生徒に一時使わせていた富士通のパソコン上で動いていたBASICは、F−BASIC 386でした。ところで、第1章で述べたように、十進BASICは、各種の機能も充実し、使いやすいです。しかし、私が最もBASIC言語を使っていたのは構造化されていなかった時代なため、当時のBASICに一番近いフリーソフトがないかと探してみました。やはり、すぐ見つかりました。中でも、私は、次章で述べる互換BASICが個人的には一番使いやすく感じています(今のところ)。
第3章 N88互換BASIC
実は、N88互換BASICはたくさん出回っていました。インタプリタ型のものもコンパイル型のものもあり、どれも使い慣れれば使い勝手はいいようです。私はコンパイル型よりはインタプリタ型のBASICの時代が長かったため、ここではインタプリタ型の物を1つ紹介します。潮田康夫氏の開発した、N88互換BASIC for Windows95 1.10 というフリーソフトです。実行すると右のように画面上にプログラム画面と実行画面というのがすぐ出てきます(この辺は昔と違うのですが)。また、デバッグするときにはデバッグ画面が出てきます。こんな風に窓がたくさん出てくるのは、この言語開発にVisual Basicを使っているためのようですが、その点を除いてはインタプリタ型であるので、昔の感覚のまま使うことができます。構造化される前の水準ですから、数学Aなど教科書にあるプログラムは当然そのまま実行できます。この他にもフリーな物はたくさんありますが、スペースの関係で省略します。
【 実行初期画面 】
第4章 本当にBasic言語でいいのだろうか
本校を含め、道内の全ての道立高等学校には、最低でも20台か40台のパソコンが導入されて、そして、ほとんど誰も使ったことのないVisual Basicがインストールされていることと思います。このVisual Basicは現在『最強のBasic言語』と言われるほどで、これからBasic言語などプログラミング言語を学ぶ人にとっては避けて通れない必須言語になってきています。私の時代ならば、FORTRAN、COBOL、PASCAL、Cといった言語があり、少し時間がたってこのBASICが必須言語になったのと似ているのかもしれません。ただ、生徒にBASICやC+といった言語を教えながら、数学の教科書にあるプログラミング言語がいつまでBASICなのだろうかと思ったのも事実です。このレポートでふれたように、今のパソコンは『スイッチ オン BASIC』ではありません。『BASICがすぐに使えないのに、まだBASICなの?』、そう思ったのは私一人でしょうか。はじめからVisual Basicを教えてみたい、そんな気持ちも少しですがあります。本校では『情報』の授業が始まるのは平成17年4月です。この2年間でいろいろな新教科『情報』の準備をすることになりますが、その合間に数学でプログラミング実習(数学の場合は、プログラミングが主ではないので、基本的な部分のみですが)をどのようにしたらより効果的かも考えていきたいと思います。
おわりに
今回の数実研に1枚物のレポートでもいいから何か持っていかなければ(今年度は1回も発表しなかったことになる)と、ぼんやり考えていた今年の正月。結局は、だらだら散漫にいろいろな調べ物をしている間に、高教研になってしまった。そして、第1回の『情報』の分科会の成功に安堵の念を持ったせいか、帰った次の日、レポートの骨格をほぼ1日で書き上げ、細かい部分の確認などを数日間で行って完成したのがこのレポートである。 十進BASICは、確かに使いやすい言語だが、私としてはN88BASICの方が使いやすく思え、その互換をするフリーソフトがあることがわかり安心した次第である。当時は不自由だと思っていたN88BASICだが、文法の微妙な癖が体にしみこんでいるため、意識せずにプログラムできるところがありがたく思えるのである。『コンパイラ言語』か『インタプリタ言語』か等、今回、調べていくうちに昔懐かしい用語もたくさん出てきて、良き復習の時間となったような気がします。こういうところが、研究のおもしろいところではないでしょうか。
最後に、このレポートはコーヒーブレークにでもお読みいただければ幸いと考えて持参した程度の物で、いつものように内容はほとんどありません。現在、書きかけているものを早期にまとめ、また、発表したいと思っています。
1月17日(金)朝
しんしんとふる雪を見ながら脱稿する