FORTRAN
2025.03.17
FORTRANも、いまでは一部しか知らない言語になりました。
自分は高校時代に習いました。(それっきりです)

中3の時、学校見学会だったか文化祭だったかで志望校を訪問する機会があり、そこで円周率の計算プログラム(FORTRAN)の展示を見かけて興味を持ちました。

数学が苦手なくせに、円周率には妙に興味を持っていて、あれこれ調べたりしていました。しかし、どうやって計算するのか当時まったく想像もつきませんでした。

要は、円周の長さを求めるにはどうするかという事で、多角形をどんどん細かくしていくわけです。

プログラムで多桁の数字を扱うにはどうすればよいかも当時は知らなくて、そのFORTRANプログラムを見て学びました。
当たり前といえばそうなんですが、桁を区切って扱うわけです。あとはRAMの許す限り、できるだけ大きな配列を確保します。
その配列ごとに桁上げ・借りを求めていくことで、多桁の計算を実現します。

たとえばZ80のアセンブラで、2バイトや4バイトの数を扱う時に1バイトずつ計算して、桁上げや借りを上位桁に反映していきますけど、同じようなことです。

RAM容量を超える部分をディスク等に書き出したり読み込んだりすれば、そういった外部記憶装置の容量しだいでもっと大きい桁も扱えるようになるけれど、その転送速度が課題となってきます。できるだけオンメモリで処理したいものです。

BASICの原型はFORTRANと聞いたことがあります。

いまでもFORTRANは科学計算などの分野では活躍しているようです。大学とか気象庁?

比較で <= > などの記号はFORTRAN77では使えなくて、.GT. .LE. .LT. .EQ. といった記号を使っていました。Greater Thanとか、Less Than、EQualの略でした。

円周率の計算式は色々あって(詳しくは専門の文献などを参照)、その中でもライプニッツの公式は最も簡単そうに見えたので最初にプログラムを組んでみたのですが、
これは収束がとても遅く、実用性がありません。かなり下の桁から相当な時間をかけて、じわじわ足し上がってくるイメージです。

これ以外に収束の早い式があります。但し、∑だの何だの書いてあって全く意味がわかりません。高校で習ったっけ。忘れた。なんとか展開だのなんとか級数だのサッパリです。

まあ、そのあたりで円周率に興味がなくなったのでした。

FORTRANはCP/M上のコンパイラが有り、過去に試した事がありました。F80というやつです。
F80でコンパイルして、M80でアセンブル、L80でリンクして実行形式(COM)にしました。
トラックバックURL
トラックバック一覧
コメント一覧
kanitama - 2025年03月17日 21:10
時代とともに言語も進化しているのでレガシーな言語は徐々に消えてしまいそうです。それでも古いシステムでは使われていそうなのですぐには消えないのでしょう。その点、BASICは根強い人気がありそうです。進化もしていますのでけっこう生き残りそうな感じですね。
コメント投稿

名前

URL

メッセージ

- CafeLog -