Entry

対話方式コマンドラインアプリの出自

2009年06月06日

先日,なんで初等プログラミングのお題では対話方式のコマンドラインアプリしか出ないんだろう,な話を書いたんだけれども,これ,なんとなく出自が分かったような気がしました。

さらに,これは常日頃疑問に思っているんですけれど,なんでコマンドラインのパラメタ指定が,いつも対話形式(標準入力から入力を逐一求める形式)なんだろう……。コマンドラインのパラメタ指定は,コマンド引数で与えるのが主流で,対話形式のアプリケーションは,むしろ少ないですよね。

qune: Yahoo!知恵袋に見る初等プログラミング教育のダメさ加減

これ,多分 N88BASIC が源流にあるんじゃないだろうか。

たしか,MS-DOS 4.x くらいの頃も日本語 BASIC はあったと思うんですけれど,それよりもっと前(PC-8001 の頃)は ROM に BASIC インタプリタが組み込まれていました。電源を入れるといきなり BASIC が立ち上がる。その後,プログラムの入ったフロッピーをドライブに入れて,LOAD → RUN するのでした。

こうした起動方法だったもんで,BASIC にはコマンド引数を管理してくれるような気の利いた機能はなかった覚えがある。ユーザからの入力は BASIC で用意されていた INPUT という命令を使うのでした。BASIC の入門書でも「りんごの数は?」見たいなダイアログ(?)を表示させて,INPUT で読み込む,みたいな対話形式が主流。つか,それしかありませんでした。

つまり,BASIC の教則本をそのまま C/C++ に移したから,こゆことになっちゃんじゃないか,と。もちろん,C/C++ のプログラミングにおいて,標準入出力からの入出力機能は知ってなくちゃいけません。UN*X でよく使われるなフィルタツールでは,入出力をパイプでつないだりリダイレクトしたりしますしね。ただ,それにしたってりんごの数を尋ねるようなオプション的な入力はコマンド引数を使うのが普通だろうし,現在のプログラミング/ユーザ環境では,必ずしも標準入力からの入力だけが唯一のポートじゃないのも確かだったりする。

「nの階乗を求めます。n = ? :」みたいなプログラミングのお題が,どうしようもなく古風に見えていたんですけれど。きっとこれが原因だったのだと思う。なんだかストンと納得してしまった。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN