言葉を覚えるのに,どれだけの時間がかかったでしょう。「アーアー」とか「マァマ」といった幼児語から始めて,日本語を正しく話せるようになるために十数年もの期間を要したはずです。中学生のみなさんは毎日英語の勉強に頭を悩ませているかも知れませんね。プログラム言語の学習もそれと同じです。ハンバーグをぱくぱくと食べるようなわけにはいきません。少し焼きすぎたステーキをナイフで少しずつカットし噛みしめるように学習していかなくてはなりません。でも,噛みしめるたびにその旨味は口の中に広がることでしょう。

 NQCはレゴマインドストーム(正式名称LEGO MindStorms Robotics Invention System = RIS)で作ったロボットを動かすためのプログラム言語です。その名前NQC(Not Quite C = 完全ではないC) の通り,言語仕様はC言語に似ています。ポインタ演算などのコンピュータを暴走させる危険性のある機能がない代わりに、MindStormsに特化した命令(モーターを回す、タッチセンサーの値を調べるなど)を備えています。NQCはDOSベースのコンパイラ(Windowsからは直接起動できず,DOSプロンプトからコマンドを打ち込んで操作するソフトウエア)ですが,RCX Command Center(RCXCC)という統合開発環境を使えばWindowsからNQCを簡単に操作することができます。

 さて,難しい言葉がいきなりたくさん出てきて面食らったかもしれませんね。「NQCはプログラム言語です」と書きました。では,プログラム言語とは何でしょう。コンピュータは人間の言葉をそのまま理解できません。それだけの能力がないのです。コンピュータに何か仕事をさせたいと思ったら,私たちが少しだけコンピュータに歩み寄る必要があります。つまりプログラム言語を覚えて(英語と同じように文法や決まりごとを理解しなくてはいけません),エディタ(編集ソフト)でプログラムを入力しなくてはいけません。今回はMindStormsを動かすためのプログラム言語NQCを勉強します。では,エディタで打ち込んだプログラムをコンピュータが即実行してくれるかというと,そうではありません。プログラム言語をコンピュータが唯一理解できる形式:マシン語(機械語)に変換してやらなくてはいけません。これはコンパイラというソフトウエアが受け持つ仕事です。NQCという言語仕様に基づいて作成したプログラムをマシン語にコンパイル(変換)する仕事はNQCが行います。つまり,プログラム言語 = コンパイラなのです。

 MindStormsのプログラムをNQCで作成するには,まずエディタでプログラムを記述し,NQCでコンパイルし,IRタワー(赤外線通信装置)でMindStormsの頭脳RCXにプログラムを送信するという一連の手順が必要になります。なんか難しくて,面倒臭そうですね。でも,RCX Command Centerを使うと,この一連手順が簡単に実行できます。
 少し,RCX Command Center(RCXCC)について説明しておきましょう。RCXCCにはエディタや、RCXへのプログラム転送機能の他に、『RCX Joystick』や『Direct Control』などのリモートコントール・ツールも用意されています。ロボットを作成して、プログラムを組む前に動作を検証したい時、リモコン・ツールは便利です。また『Watching the RCX』というツールを使えば、RCXのバッテリの状態まで確認できます。 NQCの開発者はDave Baum氏で、RCX Command Centerの開発者はMark Overmars教授です。この2人の研究者に感謝しながら学習を進めていきましょう。プログラムを少しずつ(部分的に)作成して、レゴ・ブロックで作成したロボットに転送し、動作を確認できるのですから楽しい学習環境であることに間違いはありません。