読者です 読者をやめる 読者になる 読者になる

プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

FOCS (前編)


先日話したFORTRANコンパイラの話。
ちなみにタイトルはキツネさんのスペルミスではなく、高校生の時に作ったFORTRANコンパイラの名前です。:)


マイコンの創世記、世の中にはいろいろなコンパイラが出回っていた。
BASICを始め、FORTRANPASCAL、独自言語のGAMEやTL/1、など種類も多かったが、それらは機能もサブセットでコンパクトなものが多かった。
ご存じのように当時のコンピュータはとても遅くて、ちょっと何かするにもBASICでは使い物にならない。
かと言って、機械語でロジックを組むのはかなり大変で、とても気軽にプログラムを作る気にならない。
そんなわけで、機能は少なくて整数演算しかできないけれど、高級言語の感覚でプログラムが書けて実行速度も機械語並みな、この手のコンパイラが流行っていたのだ。


中でもこのGAMEという独自言語のコンパイラインタプリタも付いていて、インタプリタデバッグし、最終的にコンパイル可能という優れものだった。
PC-8001やMZなどサポートするコンピュータも多く、これを使ったゲームも多く発表されていたような気がする。


そんな中、BASICからすぐに機械語に移っていたぼくが使っていたのは、ASCIIという雑誌に載っていた*1TL/1コンパイラ
1バイト変数しか扱えなかったけど、BASICのコメント文としてソースを入力し、モニタから気軽にコンパイル・実行ができるのはなかなか便利で、よくこれでゲームを作っていたものだ。
これで平安京エイリアンを作り、学園祭に展示したこともあったっけ。
このゲーム、なかなか面白いので、若い人や知らない人は以下のページからダウンロードして遊んでみてください。


http://www.hyperware.co.jp/software/heian/


さて、そんなことをして遊んでいたある日、ふと自分でもコンパイラを作りたくなった。
高校3年で卒業研究が近づいていたこともあり、課題としてもなかなかよさけだな。
当時雑誌ではMZ用のFORTRANコンパイラFORMが公開されていたが、たしかPC-8001はなかったはず。
よし、PC-8001用のFORTRANコンパイラを作ろう!
どうせ作るならフル機械語だ!


というわけで、ぼくはFORTRANコンパイラを作るべく、設計を開始したのだった(無謀)


さて、このblogの読者であればご存じのように、ぼくは後先考えずに思いつきで行動する人である。^^;;
数学の知識が必要なのに、電子工作が好きっていうだけで工業高校に入って、落ちこぼれてしまう人だからね(笑)
この時点では、当然コンパイラインタプリタなんて作ったこともなければ、256バイト以上の機械語を組んだこともない(汗)
その先には、本人が想像すらしていなかった困難が待ち受けていたのであった。


(TO BE CONTINUE)

*1:当時はパッケージ販売のものを買うことは少なく、みな雑誌に掲載されていた16進ダンプのリストを打ち込んでいたものである