福野泰介の一日一創

ベーマガ復活!! IchigoJam BASIC に FOR/NEXT がない理由

2015/03/17 23:55:00
#IchigoJam #IoT 

かつてのパソコン少年の晴れの舞台、マイコンBASICマガジンが電子工作マガジン2015年5月号から1コーナーとして復活!こどもの頃の愛読書「MSX-FAN」も、一般読者が自慢のプログラムを投稿し、編集者が選出し掲載されるという流れをくむ憧れの雑誌でした。こどもにとっての掲載料はもちろんうれしいですが、それより掲載され、日本中の同志の目に触れることになること自体がスゴイことでした(MSX-FANの紙芝居部門に1度載った経験あり!)。

反響大きく、リツイートが300を超えています。こどもにとってのインターネットはまだ遠いメディア。日本中のこどもにとっての、プログラミング+電子工作、IoTの世界で遊ぶきっかけになってくれればと思います。

かつてBASICでプログラミングした人はやはり多く、FOR/NEXTがない理由は気になるポイントのようです。代替が効くのでメモリを節約したいこともありますが、そもそも文法がわかりづらく、好みじゃないからです。


こちらFOR文を使った、AからZまでの間違えずに押すゲームプログラムですが、実は落とし穴があります。キーを打ち間違えるたびに、NEXTを通ってループが終了しないまま、再度FOR文に入るのでスタックが溢れてしまいます(同じ変数ならスタックを消費しない手もありはしますが、さらに文法がややこしくなる・・・)。また、FOR文の後に書かれた代入文で使う変数が、TO文で暗黙に使われるところも気持ち悪く、増減分を変更するにはSTEP文というまた別の用語を使わないといけません。(ループを抜けるBREAKを追加しようにも、どこのNEXTに対応するか決まらないため実現できず・・・)


こちらはIchigoJamでも動く、FOR文を使わないプログラム。このようにIF文とGOTO文で代用でき、プログラムの長さはほとんど変わらず、分かりやすく記述できます。同様になぜかプロ用の言語なのに、高専では入門用にと使われていることも多い、C言語でも「for (int i = 0; i < 10; i++)」と書かれたfor文のそれぞれの要素がどのような順番で動くのか直感的に理解しにくいため鬼門となっています。

プログラミング言語はプログラマーに対してのユーザーインターフェース by まつもとゆきひろ」
IchigoJamをきっかけに、プログラミング言語づくりもやってみたいという子供もきっといるはず。答が無数にあるコンピューターの世界へようこそ!(参考、IchigoJamで学ぶマシン語その1


IchigoJamは、ARM Cortex-M0で動く、CPU LPC1114FN28にピンの使用方法がわかるシールを貼っています。組み立てキット、せっかくなので、素のCPUにも触れてもらい、ミニ四駆のように自分でシールを貼る儀式があると更に愛着も湧くかもと、試作中です。

- 電子工作マガジン2015年5月号
- こどもパソコン IchigoJam
- 後日、FOR/NEXTに対応しました

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — 表示 4.0 国際 — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / 高解像度プロフィール画像(和服)