ふむ、半ば落語で言うご隠居さんに近い存在となっている私にも面白いことは起こります。内容は世間的には下らないことから国際的に微妙なことまで多数。本日は職場に新しい所長が来て、何と私が大学出たての研究者駆け出しの頃の10年先輩で、向こうから覚えていたことを言って下さいました。今はどちらも普通のサラリーマン。
ダートマスBASICの正体を私は知らないので画竜点睛を欠くとは思いますが、東大版PaloAltoTinyBASICや初期のパソコン用マイクロソフトBASICの作者はおそらく、そのダートマスBASICの中身を知っていたと思います。そこからの類推というか妄想というか。
まずは外見から。ダートマスBASICとパソコンBASICの共通点は、ですからとても多くて、ダートマスBASICの教科書に載っているプログラムのほとんどは少し変えるだけでパソコンBASICで動作してしまいます。たとえば、
100 REM SHISOKU TEST
110 LET A = 5
120 LET B = 3
130 LET C = A + B
140 LET D = A - B
150 LET E = A * B
160 LET F = A / B
170 PRINT A, B, C, D, E, F
などと、たとえば手元にあるPasocomMini PC-8001のN-BASIC(マイクロソフト製)で打って、run命令を発すると即座に、
5 3
8 2
15 1.66667
のパソコンからの回答が得られます。
LET命令のLETは省略できて、数式に関してはFORTRANやC言語とほぼ同じに見えます。もちろん掛け算(×)が*で割り算(÷)が/なのはFORTRAN由来だと思います。
現在のfortranは近代言語の外見を持っていて、FORTRAN77と呼ばれる規格からだと思います。昔風のFORTRANが知りたい方は、JIS FORTRAN 水準7000でネット検索すればとても詳しい解説が出てくるはずです。
構造化プログラミング派の天敵、go to文は単に任意のどこかに制御が飛ぶだけでなく、今の観点からはびっくりするような構文があります。if文も同様。しかし、この時代のFORTRANが初期の計算機科学のかなりの部分を開拓したのですから粗末にはできません。
アルゴリズムに関しては現在は構造化プログラミングの時代が続いていると思います。C言語もその一派で、いわゆるフローチャートはほとんどの場合で不要になりました。
逆に、その時代のFORTRANや初期のパソコンBASICではプログラムを書く前にフローチャートを書かないと訳が分からなくなります。なので、フローチャートを書くためのテンプレートと呼ばれる穴あき定規が市販されていました、私も何枚か持っていました、懐かし。
先に結論を言っておくと、構造化プログラミングは初期のLISPからあったCOND形式の事だと、今の私の知識では結論できますから、全く大したことはありません。構造化プログラミングの原理主義者は今は影が薄いと思いますが、一時期は声が大きくて辟易したものです。条件分岐は数学で言う場合分け(だからcondition)、繰り返しは末尾再帰、つまり数学的帰納法です。それ以外の原則というか原理は無い、と思います。
ダートマスBASICの正体を私は知らないので画竜点睛を欠くとは思いますが、東大版PaloAltoTinyBASICや初期のパソコン用マイクロソフトBASICの作者はおそらく、そのダートマスBASICの中身を知っていたと思います。そこからの類推というか妄想というか。
まずは外見から。ダートマスBASICとパソコンBASICの共通点は、ですからとても多くて、ダートマスBASICの教科書に載っているプログラムのほとんどは少し変えるだけでパソコンBASICで動作してしまいます。たとえば、
100 REM SHISOKU TEST
110 LET A = 5
120 LET B = 3
130 LET C = A + B
140 LET D = A - B
150 LET E = A * B
160 LET F = A / B
170 PRINT A, B, C, D, E, F
などと、たとえば手元にあるPasocomMini PC-8001のN-BASIC(マイクロソフト製)で打って、run命令を発すると即座に、
5 3
8 2
15 1.66667
のパソコンからの回答が得られます。
LET命令のLETは省略できて、数式に関してはFORTRANやC言語とほぼ同じに見えます。もちろん掛け算(×)が*で割り算(÷)が/なのはFORTRAN由来だと思います。
現在のfortranは近代言語の外見を持っていて、FORTRAN77と呼ばれる規格からだと思います。昔風のFORTRANが知りたい方は、JIS FORTRAN 水準7000でネット検索すればとても詳しい解説が出てくるはずです。
構造化プログラミング派の天敵、go to文は単に任意のどこかに制御が飛ぶだけでなく、今の観点からはびっくりするような構文があります。if文も同様。しかし、この時代のFORTRANが初期の計算機科学のかなりの部分を開拓したのですから粗末にはできません。
アルゴリズムに関しては現在は構造化プログラミングの時代が続いていると思います。C言語もその一派で、いわゆるフローチャートはほとんどの場合で不要になりました。
逆に、その時代のFORTRANや初期のパソコンBASICではプログラムを書く前にフローチャートを書かないと訳が分からなくなります。なので、フローチャートを書くためのテンプレートと呼ばれる穴あき定規が市販されていました、私も何枚か持っていました、懐かし。
先に結論を言っておくと、構造化プログラミングは初期のLISPからあったCOND形式の事だと、今の私の知識では結論できますから、全く大したことはありません。構造化プログラミングの原理主義者は今は影が薄いと思いますが、一時期は声が大きくて辟易したものです。条件分岐は数学で言う場合分け(だからcondition)、繰り返しは末尾再帰、つまり数学的帰納法です。それ以外の原則というか原理は無い、と思います。