パソコンの使い方の1つとしてプログラミングがあります。
昔はプログラミング=コンピューティングだったのですが、アプりけーしょんの普及、OSの発達によって徐々にイコールではなくなってきているようです。
今のパソコンの90%は既にプログラミングを必要としなくなっているでしょう。
(勿論、本職のアプリケーションを造っているところは別として)少なくともユーザーはプログラミング言語を覚える必要はなくなっています。
しかし、プログラミング、論理を組み立てるということは大変におもしろく、また、コンピュータのロジックを理解するうえでもいみがあります。
ここではいりいろな意味でのプログラムについて話してみようと思います。
Basic
非常に単純な英語の単語を組み合わせ、行番号で管理した簡易プログラミング言語です。
機種によってバラバラの拡張命令が多数あり、中間コード(オブジェクト)レベルでの互換性もまったくなかったため、ソースを手打ちするという気の遠くなる作業がメインでした。
しかし、とっつきやすいのと途中で手を加えやすい利点があり8ビット時代は主流の言語でした。当時のパソコン事情ではosがまだ未整備なところもあってBASIC−ROMがなかばOSを兼ねているところもありました。
C
8ビットはBASICがほぼ標準言語でしたが、16ビット時代にはよりシステム寄りのCが用いられるようになります。その理由は、16ビット機になってOSの存在がクローズアップされてきたからなのです。(コラム2)
8ビットマシンにもCP/MというOSはありましたが、残念ながらメモリ効率やメディアの未成熟さにより少なくとも日本では標準搭載とはなりえなかったという現状がありました。
パソコンに限らず、CPUを使った電子機器はすべて、機械語によって書かれたプログラムを実行することで動作します。
勿論、BASICやCを用いたプログラムも最終的には機械語でうごきます。ただ、機械語でどううごかすかを人間にわかりやすいようにくだけてINPUTできるようにしたのがかくプログラミング言語なのです。俗に”高級言語”ともいいます。
ちなみにBASIC以前は機械語にそれっぽい命令を宛てはめたアセンブラというのがプログラミング言語の常識でした。このアセンブラはCPUやOSの機能を直接呼び出したりいじくったりできるため、現在に到るまで使われています。有名なところでは背ガサターンのゲームでも一部アセンブラで造られたゲームがあるとか。
WINDOWS時代になるとプログラミングの概念が根本的にかわります。
ここでいうプログラムは1からコーディングする必要はありません。すでにプログラムに必要なだけの材料はOSが提供してくれます。
マルチウィンドゥ、位置決め、窓の大きさ、メニューの位置、CGのフォーマット、音声のフォーマット、アニメや動画の作成方法などなど・・・いままでのプログラミングではこれらを決めるために1年、2年かかるのもめずらしくありませんでした。
しかしWINDOWSになってそれらを決める必要はなくなりました。ここでのプログラミングはイコールシステムのコア部分のみの設計だけで良くなったのです。
例えばシューティングゲームなんかでいえば、敵や味方のキャラよりもそれらがどう動くかとか、どの程度の頻度ででてくるかとか、ボスはどのぐらいのタイミングで出現するかをプログラミングすればいいワケです。
キャラのアニメーションとか爆発音の再生とかはすべてOS側に任せてしまうことができるようになりました。
そういうWINDOWS型のプログラミング言語としては
VisualbasicやDelphiなどがあげられます。
MS−DOSはその名前通り、OSとしてはファイルとディスクの受け渡しを行なう部分のみが共通化されており、グラフィックやサウンド、その他のデバイスに関しては各機種ごとに見事にバラバラでした。
MS−DOS以外のOSとしては先にあげたCP/Mというのがありましたが、当時の8ビットマシンではOSの必要性があまりなかったのと、1バイトコードを基本にしていたため、漢字を扱うのが苦手だったこと、サイズが64KB以上のプログラムが組めない(これは8びっとCPUの制限)ため結局一般化しませんでした。
また、モトローラCPU用につくられたOS−9というOSもありましたがこれもメジャーにはなりえませんでした。
ま、
OSというものがパソコンに採用されるのは16ビットCPUとMS−DOSの登場をまたなければならなかったということです。
プログラミング
かえるの知り合いに、シャープのポケコンPC−E500を用いてゲームを造っているひとがいます(本文内では”OCH”とよばせてもらいます)
かれの造るゲームは単純ながらキビキビとした操作性とスピーディなアニメーション表示で驚かせてくれます。ビーチバレーゲームなど、本当にボールがフワフワとうごいて見てて楽しいのです。
このプログラムは、BASIC言語で造られており、なめらかなアニメーションもOCHが独自に作り出したゲーム用キャラ表示ルーチン”OPAS”によって実現されています。
べつにここで、今更8ビットマシンのBASICについて云々するわけではありません。
ここで大事なのは、OCHが常に単純で面白いものをゲーム製作に求め、それを実践しているということです。
このアイディアとそれをゲームという形あるものにつくりだすOCHの技術と情熱はたとえ他のマシンやプラットホームにうつってもかわらないとおもうのです。
かえる個人としてはぜひWINマシンでその才能を開花させて欲しいものだとおもうんですが・・・
PC−E500はシャープが1988年に発売したポケットコンピュータです。
320*32ドットの液晶画面を持ち、BASIC言語でプログラムできる8ビットマシンでした。
大学や工業高校で教育用に採用されたため、多くのユーザーが学習用にもちいられました。ちなみに、PC−E500に採用されたCPUは後にシャープZAURUSにも採用され、原稿機種のPI−8000にも使われています。
残念ながら1991年に出た後継機PC−E650以降はポケットコンピュータはリリースされず、現在もなお、このE−650が現行機としてカタログに載っています。
(まだ現行機としてカタログに載っているだけマシかな・・・・)
パソコンをプログラムすることはたとえるならミニ4駆に似てます。
ミニ4駆は車輪とシャーシとモーターとその他の部品をくみあわせて、さらに強化パーツに取り替えたり、ボディを軽量化したり、タイヤを交換したりして最速のマシンを作り出します。
プログラミングはそれらミニ4駆の部品をロジックというものに置き換えた
”思考の模型”
である、というかんがえかたはヘンでしょうか?
先ほど挙げてきたプログラミング言語以外にもプログラムを行なう方法はあります。
有名なところではEXCELなどのアプリケーションに内蔵されているマクロ言語があります。
これらも使いようによってはプログラム以上の働きをしてくれるかもしれません。
たとえばMS−DOSエディタのベストセラー、VZエディタのマクロ機能は強力で、ワープロライクな操作を実現したり、富士通ワープロOASYSのようにカーソルキーで罫線が引けたり、テトリスや、RPGまでできてしまう。それどころか、ソフト本体のかすたまいずもマクロで実現しているのはあっぱれと言うほかはないです。
また、これはマクロ言語というには語弊があるが、このホームページを形成しているHTMLという書式うめこみ文書もいいかえればWWWブラウザ上で動くマクロ言語だともいえないことはないでしょう。
各種プラグインを呼び出せばその表現はもはやへたなプレゼンテーションソフトですらかすんでしまうだろう。