アカウント名:
パスワード:
物理屋です。毎日Fortranを使ってます。他にはsh, C, Rubyがまあまあ書けます。さいきんのFortranはいろいろなことができるので使っていて楽しいです。gfortranとg95というfreeで使いやすいコンパイラもありますし。物理か化学をやるんなら、知っていて損はない言語なんじゃないでしょうか。
Fortranについて思いついたことを箇条書きにしてみます。* implicit none は使えよ* module は common の代わりに使うな* いいかげん大域変数(的なもの)を使うのはやめろ* 自由形式 (free form) で書け* 構造体 (type) を使え* 配列の範囲が自由 a(1:N), a(0:N-1), a(-N+1:N), a(3,0:N
Fortranを使う理由として、言語仕様が単純なのでコンパイラの最適化がかなり効くということをFortranのヘビーユーザから聞いたことがあります。ポインタやオブジェクト指向などを使っても性能低下は無視できるレベルでしょうか?
そもそもF90/95のポインタはCのようなアドレスを意味する整数ではなくて,C++の参照のような抽象的なもんで, しかもポインタが指す(可能性のある)変数はtarget属性を明示しないといけないので, 適切に使用してやればコンパイラも最適化してくれます.
オブジェクト指向といってもF90/95の範囲では継承やポリモーフィズムといった概念はなく,単にまとまった要素はmodule化して, interfaceだけ共通化していけば差し替え可能でうれしいな, ってレベルです. C++のテンプレートに近い.F2003でどうなってるのかはしらん.
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
さいきんのFortranは使っていて楽しい (スコア:5, 参考になる)
物理屋です。毎日Fortranを使ってます。
他にはsh, C, Rubyがまあまあ書けます。
さいきんのFortranはいろいろなことができるので使っていて楽しいです。
gfortranとg95というfreeで使いやすいコンパイラもありますし。
物理か化学をやるんなら、知っていて損はない言語なんじゃないでしょうか。
Fortranについて思いついたことを箇条書きにしてみます。
* implicit none は使えよ
* module は common の代わりに使うな
* いいかげん大域変数(的なもの)を使うのはやめろ
* 自由形式 (free form) で書け
* 構造体 (type) を使え
* 配列の範囲が自由 a(1:N), a(0:N-1), a(-N+1:N), a(3,0:N
love && peace && free_software
t-nissie
Re: (スコア:0)
Fortranを使う理由として、言語仕様が単純なのでコンパイラの最適化がかなり効くということをFortranのヘビーユーザから聞いたことがあります。ポインタやオブジェクト指向などを使っても性能低下は無視できるレベルでしょうか?
Re:さいきんのFortranは使っていて楽しい (スコア:0)
そもそもF90/95のポインタはCのようなアドレスを意味する整数ではなくて,
C++の参照のような抽象的なもんで, しかもポインタが指す(可能性のある)変数はtarget属性を
明示しないといけないので, 適切に使用してやればコンパイラも最適化してくれます.
オブジェクト指向といってもF90/95の範囲では継承やポリモーフィズムといった概念はなく,
単にまとまった要素はmodule化して, interfaceだけ共通化していけば差し替え可能
でうれしいな, ってレベルです. C++のテンプレートに近い.
F2003でどうなってるのかはしらん.
Re:さいきんのFortranは使っていて楽しい (スコア:1)
継承もポリモーフィズムもちゃんとありますよ。オペレータオーバーロードもあるけど、さすがにこれはプログラムの可読性を下げてるだけのような気がしますが。