くだすれFORTRAN(超初心者用)その5at TECH
くだすれFORTRAN(超初心者用)その5 - 暇つぶし2ch828:営利利用に関するLR審議中@詳細は自治スレへ
12/04/05 03:02:15.16
COMMON文は、メモリー領域の共有だから、並べた順番に意味があって、名前には意味がない。
subroutine1
COMMON/A,B,C/ 
subroutine2
COMMON/C,B,A/
とある時、A=C、B=B、C=Aとなる。

これにたいし、MODULEの場合は元々の名前が引用される側でそのまま使われるので、最近の新参言語に慣れた人や初心者の直観像に近い。
COMMON文は元々メモリーの一滴が血の一滴だった頃に、メモリー領域をぎりぎりまで共有して使うための機能。なれれば気持ちいい。
ところが最近の言語しか知らないちびっ子は大域変数と混同してトンチンカンで間抜けな寝言をほざいている。
手動で領域確保とガベージコレクションをやっているようなもんと言えばありがたがるかもしれんw

とはいえ、最近はCOMMON文は、コンパイラの自動最適化の障害になるので使わなくて済むなら、
使わないほうが速いプログラムが出来るという理由で避けたほうがいいとされる。
EQUIVALENCEも同じく最適化の障害になるので、TRANSFER関数を使えと言われている。



MODULEは、F77までは裸でサブルーチンを並べていたのを、箱に入れておくような物。ありがたい点は、分割コンパイルしても
引数の型チェックなどが可能になること。C言語みたいに自分でインターフェースを書かなくても、コンパイラが自動でヘッダーファイルに
相当するものを作ってくれる。MODULEは便利なので、サブルーチンの箱と思って使うとよろしい。
また、これにより大域最適化も昔より用意になっていると言われている。

オブジェクト指向は、引数の型チェックを緩める仕掛けというのが最大の使い道の気がするw


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch