fortran66のブログ

fortran について書きます。

メモ帳:Knuth の An empirical study of FORTRAN programs

Donald E. Knuth が 1970年に "An empirical study of FORTRAN programs" という論文の中で、FORTRAN プログラムの解析をしています。年代からここでの FORTRANFORTRAN IV/66 水準のものだと分かります。すなわち制御が構造化される前です。

結論からすると、静的には代入文が約半数、動的には反復などで代入が全体の約 2/3 に増える。SUBROUTINE 呼び出しは 5~10% 程度の模様です。
f:id:fortran66:20170927012354p:plain

f:id:fortran66:20170927011543p:plain


配列が多重 DO LOOP の中で何度も更新されている様子が目に浮かびます。

f:id:fortran66:20170927013617p:plain

現代風だと GO TO / CONTINUE / FORMAT は要らなくなるので、これで 16% 抜けることになります。よってたぶん代入7割、制御1割、宣言1割、I/Oとサブルーチン呼び出しで1割といった塩梅でしょうか?

onlinelibrary.wiley.com
直リン:http://www.cs.tufts.edu/~nr/cs257/archive/don-knuth/empirical-fortran.pdf

追記

Kernighan & Plauger の Software Tools (Chap.9 Bibliographic Notes, p.318) によると、"profile" をプログラム中の単語頻出度の意味に使うようになったのは、この論文がはじめとのこと。

Art of Computer Programming, Volumes 1-4A Boxed Set, The (Box Set)

Art of Computer Programming, Volumes 1-4A Boxed Set, The (Box Set)

The Art of Computer Programming Volume1 Fundamental Algorithms Third Edition 日本語版 (ASCII Addison Wesley Programming Series)

The Art of Computer Programming Volume1 Fundamental Algorithms Third Edition 日本語版 (ASCII Addison Wesley Programming Series)

コンピュータの数学

コンピュータの数学

Concrete Mathematics: A Foundation for Computer Science

Concrete Mathematics: A Foundation for Computer Science