2012-05-04 18 views
2

私は知っている..これは想像していない...それは本当のFortranの質問です。以前のバージョンでFortran 2008は以前のFortranバージョンと下位互換性がありますか?

私は、Fortran 2003、95、90を意味し、さらに77

私が意味後方互換性によって、簡単に(構文にはいくつかのマイナーな変更に過ぎないと)2008年以前のバージョン用に書かれたコードを実行することができます?

+2

ベンチマーク:Googleに表示される時間は7分以内です。 –

+0

コンパイラはほとんどが言語標準ではありません、特に77より前の機能です。 –

+0

私は今までのところFortranを楽しんでいます。コードは非常に移植性があります。前処理は不要で、Fortranの任意のバージョンを取り出し、オブジェクトファイルにコンパイルしてから、必要なコードにリンクします。私はこれが100%の時間ではうまくいかないことは知っていますが、かなり簡単です。 –

答えて

6

Fortran 90では何も削除されませんでしたが、Fortran 95以降ではいくつかのひどい機能が削除されました。より多くのものは「陳腐化」とマークされています。たとえば、http://www.cisl.ucar.edu/zine/96/fall/articles/3.f90.obsolete.htmlを参照してください。実用的な問題として、コンパイラのベンダーにはまだ多くのレガシーコードが存在するため、これらの機能が含まれています。コンパイラがレガシーFORTRAN 77プログラムをコンパイルできなかった場合、顧客の反乱が起こるでしょう。

+0

私は実際に顧客の反乱があるべき理由を理解していません。 F77プログラムをお持ちの場合は、F77コンパイラでコンパイルします。 F2kコードをお持ちの場合は、F2kコンパイラでコンパイルしてリンクしてください。実際の深いクリーンアップは、ユーザーやコンパイラの開発者にとって有益であるというFortranの設計ミスは非常に多くあります。 –

+0

ほとんどの人は1つのコンパイラを必要とします。 1つのコンパイラでのきれいなアプローチは、デフォルトで削除された機能を無効にし、コンパイラオプションで有効にする可能性を提供することです。また、デフォルトで廃止された機能の使用について警告するためです。 –

2

これは、Fortranの概要であり、下位互換性です。しばしば、Fortran標準は今後50年間(冗談ではない)サポートされることを期待しています。 Fortran 66コードは、2008標準のほとんどの機能をサポートするインテルコンパイラでコンパイルできます。

+0

できません。ループ内のサイクル変数を変更してみてください。 –

+0

@Stefano Borini:ifortに-f66コンパイラオプションを追加するとできると思います。もちろん、いくつかの非互換性はありますが、一般的には動作します。 –

関連する問題