最終更新日:
2013-01-07
初版: 2001/10/13
そんななかで、学生でも手の届きそうなのが、 ボーランド社から発売されていたTurbo Pascalでした。 しっかりしたマニュアル、よくできたスクリーンエディタ、 高速なコンパイル(もちろん当時の基準で :-)…。
そのころ使っていたのは8ビットのPC-8801という「マイコン」で、 CP/MというOSが動いていました。 貧弱な環境ながらも、それなりに楽しくプログラミングの勉強ができました。
講義を担当していた先生からすすめられて読んだのが、 いわゆる「古典」である「ソフトウェア作法」でした。 その本には、 「君の使っている処理系にはリダイレクトやパイプラインの機能はあるのか。 なかったら実装してみなよ」 という感じの演習問題がありました。
CP/Mには、 入出力をプログラムが走るときに切替えるリダイレクトの機能は残念ながら ありませんでした。 もちろん、パイプラインもありません。
同じ頃に友人が使っていたMS-DOSにはついていましたが、、、
じゃあ、なかったら作ろうか、となったしだいです。
コマンドラインに「>」や「<」があったら、その次に書かれているものは ファイル名として処理するようにしました。 これでリダイレクトはなんとかできるようになりました。
次は、プログラムの出力を別のプログラムにつなぐ「パイプライン」です。
MS-DOSでは、パイプラインは中間ファイルをつかって実装されていました。
prog1 | prog2は、中間ファイルの名前を「tempfile.dat」とすると、
prog1 > tempfile.dat prog2 < tempfile.datと等価ということです。
では、これをCP/Mでどう真似るかです。 幸い、CP/Mには「SUBMIT」という、 MS-DOSのバッチファイルの祖先のような機能がありました。 そこで、コマンドラインに「|」があれば、 上のように展開してプログラムを順に実行するようにしました。
ここまでやってしまうと「ソフトウェア作法」に出てくる プログラムを「じゃ、Turbo Pascalで書いてみるか」となってしまって 次のサンプルプログラムを作りました。
こんな大昔の話でも、 なつかしんでいただける方々もいらっしゃるようですね。