2023年3月6日月曜日

プログラミング遍歴(1)

(1) FORTRAN:
高校理数科のとき,試験にも出たFORTRANは座学だけで学んだ,というか聞きかじった程度。参考書というわけでもないが,興味があって自分で買ったのが電子計算機と人間だったけれど,これを読んでもさっぱり分からない。テレビでは,森口繁一(1916-2002)のNHKコンピュータ講座フォートラン入門をやっていたが,これもたまにチラ見する程度で何が何だかやっぱりよく分からない。

阪大の物理学科に入ると,初年次セミナーというのがあった。意欲的な同級生らは,バークレーの統計力学やFORTRAN入門にエントリーしていた。自分は億劫でどれにも参加しなかったが,学籍番号が隣の越湖直人君が,FORTRANのプログラミングで,銀河系形成のシミュレーションをやっていると聞いた。残念ながら最終結果を得るにはリソースが足りなかったようだ。

さて,その森口繁一のJIS FORTRAN入門の第2版上下を買ってしばらくしてから,大学4年の村岡光男先生の数値計算法で,はじめてのFORTRANプログラミングを体験することになる。文法の説明が数回あった後に,課題に取り組んだ。豊中データステーションの様子は以前に書いたとおりだ。いくつかの課題があって,そのうち2つを選択してレポートとして提出すれば単位がもらえる。

最初の課題は単純な四則演算の組み合わせだったのでそれを選択したものが多かった。それではつまらないと思い,5次方程式の解法と行列の対角化の2課題に取り組んだ。それぞれについて結果を出した自信があったが,後で考えるとどうも答えが間違っている。実際,村岡研に進んだ楠本君から,当時の成績が悪かったらしいと聞くことになる。

そんなわけで,大学院に進学して修士論文に取り組み始めてからも,なかなか研究がはかどらない。業をにやした大坪先生が,簡単なルンゲクッタ法のプログラムを作ってみるように指示し,教育的配慮でほめてくれたので,それをきっかけに,FORTRANプログラミングへの抵抗はなくなった。

こうして,修士課程以降は2000年ごろまでは,普通にFortran77を研究に使っていた。1990年代には京大の総合人間学部(旧教養部)の科目の非常勤でFortran77の実習も担当した。そんなわけで,Macを使うようになっても,長らくabsoft Fortranのライセンスを維持していたけれど,実際にはほとんど使うことはなかった。absoft Pro Fortranは2022年の8月に販売終了していた

(2) BASIC:
大阪教育大学に勤めてまもなく研究室に導入したパーソナルコンピュータが,NECのPC-9801だった。これにはN88BASICがROMでプレインストールされていて,OSのように使われた。アプリケーションソフトもまだ高額だったので,BASICがなければパソコンが使いこなせない。学生の卒論もBASICで計算していたし,授業や公開講座などでも良く使った

もっとも,最初に,BASICに出会ったのは,1980年ごろに阪大附属図書館でアルバイトをしていたときに,図書館2Fの事務室に導入されたOKIのif800のBASICだった。チラッと眺めたけれど,四則演算は分かるがグラフィックスが皆目見当がつかない。同じアルバイトで1-2学年下の化学の学生が,スラスラと図形を表示させているのにビックリしてしまった。

さて,そのNECのBASICである。BASICコンパイラなども使ったけれど,自分の研究のための計算をすることはほとんどなかった。卒論にもそれほど使い込んだ記憶がない。そうこうしているうちに,8087に対応したTurbo Pascal 3.0 がやってきたからだ。非常に快適なプログラム作成環境で,コンパイルのスピードにほれぼれしていた。これは,斎藤昌久君が,グラフ作成ツールなどを作ってくれて重宝した。

BASICではないが,PC-9801に8087数値演算プロセッサを積んだころ,その能力を活かそうと,8080+8087のアセンブリ言語プログラミングに取り組んだ。当時のパソコン雑誌にはこうした記事がたくさんあったので,素人でも簡単に手を出すことができた。Clebsh Gordan係数やRacah係数のコードを作り,BASICと組み合わせて連立方程式の計算を高速で実行するというあたりで,若松正志さんにそれで何をしますかと聞かれて,そうですね・・・と終了を迎えることになった。

(3) C:
C言語は,カーニハン・リッチーのプログラミング言語C石田晴久訳)を買って少しだけ勉強した。そのころは,Lattice CLightSpeed C/Think CTurbo C など,あまたのC言語処理系が乱立していた。Oh PC にはCとアセンブリ言語の中間のようなコンパクト言語なども掲載されている時代だ。で,さきに述べたように,ポインタのあたりでつまづいてサンプルプログラムを越えるものは作れなかった。


0 件のコメント: