Doctor Fortran による「2018 が新しい 2015」

同カテゴリーの次の記事

インテル® コンパイラー 17.0 以降の新機能: ループのコード・アライメント

この記事は、インテル® デベロッパー・ゾーンに公開されている「Doctor Fortran in “Eighteen is the new Fifteen”」の日本語参考訳です。


国際 Fortran 標準化委員会 (WG5) は、2012 年に開催された次の標準規格改訂スケジュールについての会議において、その非公式名称を「Fortran 2015」としました。その後改訂スケジュールは変更されましたが、名称は維持されました。現時点では、Fortran 2015 は 2018 年後半に発表される予定です。これに伴い、「名称に含まれる 2015 を発表される年に変更すべきでは?」という声が上がりました。

Fortran では、これに似た前例があります。Fortran 90 は、最初は Fortran 83 と呼ばれ、その後 Fortran 88、Fortran 8X に変わり、最終的に Fortran 90 となりました。同様に、Fortran 2000 は Fortran 2003 (2004 年に発表) になりました。Fortran 2008 の名称は変更されませんでしたが、発表されたのは 2010 年です。委員会では、原則として「技術的な作業が完了した年」を改訂名としていますが、このところしばらくはこれが守られていません。ユーザーと開発者からは、すでに時代遅れの言語であると誤解されている Fortran にとって 3 年も前の名前を持つことはためにならない、という懸念が高まっています。ほかの言語は、通常、発表された年に対応した名称が付けられています (例えば、C++17)。

第 2 回委員会草案 (CD) において、英国委員会はこの問題について提起し、J3 (米国委員会) での論議を要求しました。それに対する結果が 17-193r1 (英語) です。2017 年 10 月の会議において、J3 はこの件に関して「世論投票」を実施しましたが、結論には至りませんでした。そこで、私は WG5 の議長として、WG5 のメーリングリストの受信者に「Fortran 2018」への名称変更に対する投票と意見を求めました。結果は、賛成 17、反対 5 と決定的でした。(詳細は、WG5 文書 N2144 (英語) をご覧ください。)

この結果を受けて、現在策定中の標準規格の正式名称は Fortran 2018 になることに決まりました。これまで「Fortran 2015」が使用されてきたことは認識していますが、多くの人はこの名称変更が長期的にはメリットになると感じることでしょう。また、今回の議論を通して、Fortran 2018 以降の標準規格の非公式名称は「Fortran 2020」ではなく「Fortran 202x」とすることになりました。2020 は例であって、実際には次の改訂は早くとも 2021 年になると予想されます。何はともあれ、新たな名称になったことで、今回のような騒動が起こることはないでしょう。(C++ も策定中の標準規格を C++1x と呼んでいます。) ひょっとしたら、202x の後は 202y になるかもしれませんね。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事

  • Fortran 2003 仕様のサポートFortran 2003 仕様のサポート インテル® Parallel Studio XE 2015 Composer Edition に含まれる、インテル® Fortran コンパイラーでサポートされる Fortran 2003 の機能を以下にまとめます。 言語機能 V14.0 V15.0 KIND と LENGTH 型パラメータおよび […]
  • ガイド付き自動並列化ガイド付き自動並列化 この記事は、インテル® デベロッパー・ゾーンに掲載されている「Guided Autoparallelism」の日本語参考訳です。 インテル® Composer XE Linux* 版には、ガイド付き自動並列化 (GAP) 機能が含まれており、Fortran と C/C++ […]
  • インテル® MKL 10.3 で追加された新機能インテル® MKL 10.3 で追加された新機能 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「What's new in Intel® MKL?」の日本語参考訳 (一部編集含む) です。 インテル® MKL 10.3 では主に次の機能が追加されました。 インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) […]
  • #pragma SIMD を使用してループをベクトル化するための条件#pragma SIMD を使用してループをベクトル化するための条件 この記事は、インテル® デベロッパー・ゾーンに公開されている「Requirements for Vectorizing Loops with #pragma SIMD」の日本語参考訳です。 インテル® アーキテクチャー上でパフォーマンスを向上するにはループのベクトル化が重要であり、SIMD […]
  • Fortran からのラッパーの呼び出しFortran からのラッパーの呼び出し この記事は、インテル® MKL リファレンス・マニュアルの項目「インテル® マス・カーネル・ライブラリーの FFTW3 インターフェイス」の一部です。 インテル® マス・カーネル・ライブラリー (インテル® MKL) は、FFTW3 ラッパーの Fortran 77 インターフェイスも提供します。すべての FFTW3 […]