日本語練習帳

つらみのラプソディを歌います

修論 #1

一体何度目か分からない長期休載みたいな感じになって恐縮ですが,修論に取り掛かることを機に,また出来る限り更新を続けていこうと思います.

最近,コーディング時の悩みの解決能力が随分と向上してきた実感があります.

特に,

  • MKL Link Line Advisorのオプションの意味を朧気ながら理解した
  • MKLで自力でコンストラクタ・実行・デストラクタの流れをsubroutineで隠蔽化して書けるようになった
  • GithubGit Flowの簡易な流れを模してタスク管理が出来るようになった

ということの寄与が大きかったように思います.何だかんだ物理学科に進学したからには,物理に専念するのに充分な技術的な余裕を獲得したいわけで,しょうもないことに時間を取られるのは不本意なわけです1

数値計算について若干

科学技術計算で低レイヤー言語で低学習コストと言えばFortran なわけですが,どうもエンジニアリングの観点から「作業効率化・保守管理・オブジェクト指向デザインパターン・etcと相性が悪い」と思わされる場面が少なくありませんでした.それもそのはずで,そういうことを気にしなくても済むような言語として開発された背景もあるのでしょう.一方,エンジニアリング界隈でFortranの優位性がいまいち評価されていないのも然りで,「何だかお互い技術的に断絶しているな」というのが現状なわけです.そう思っていた矢先に,ちょっと面白い同人誌を見つけてしまいました.

fortran.booth.pm

書籍のタイトルも『Fortranによる実践オブジェクト指向プログラミング』という大変魅力あるものだったので,特に中身に関する前情報もなく反射的に購入してしまいました.これが大変面白く,今の自分の「エンジニアリングの観点から見たFortran,そしてFortranユーザーから見たエンジニアリング界隈のパラダイムは一体どうなのか」という疑問に真っ向から向き合ってくれるような良書だったわけです.ちょっと見開いただけでも,自分の知らないFortran2003の標準機能がザクザクと紹介されている一方,200と数ページという薄い本によくこれだけの情報を蓄積できたなという感慨を覚えました.正直,著者の方にはものすごく強い共感みたいなものを覚えてしまいました.

例えば,文字型変数の宣言文では,Fortran95であれば

character(length = 20) :: char

などとやって文字数に余裕を持たせてから

char = TRIM("hogehoge")

という風に「代入 -> 後方の空白をカット」という手続きを経るのが常識だったわけです(多分).それがFortran2003では自動再割付文字型という機能に取って代わられ,

character(:), allocatable :: char

という宣言文からの

char = "hogehoge"

という代入文で自動的に8文字の割付が行われるようになったわけです.勿論,ありとあらゆる文献を当たってFortran2003を勉強していれば当たり前の事実ですが,日本語で書かれた数値計算屋さんのためのFortranの標準的な教科書では,どうもこの辺の便利な2003年以降の機能が取り上げられていないことが多く,やはり断絶みがあるなと言わざるを得ません.

個人的には,数値計算Fortran固有の機能についてバランスよく書かれた最良の教科書と言えば,現状は牛島さんの『数値計算のためのFortran90/95プログラミング入門』しかないかなと考えています.

数値計算のためのFortran90/95プログラミング入門

数値計算のためのFortran90/95プログラミング入門

なので,これ以上のクオリティのものがFortran2003ないしは2008について書かれれば人類は皆幸せになるのではと思うわけですが,どうもそういうわけではないようです.英語の文献で言えば,Springerからは『Guide to Fortran 2008 Programming』とか『Introduction to Programming with Fortran』が出ているようなので,是非このレベルのものが和書でも出て欲しい.

Guide to Fortran 2008 Programming

Guide to Fortran 2008 Programming

Introduction to Programming with Fortran: With Coverage of Fortran 90, 95, 2003, 2008 and 77

Introduction to Programming with Fortran: With Coverage of Fortran 90, 95, 2003, 2008 and 77

結論としては,Fortran界隈自体は非常に奇特なので,色んな人と仲良くしていきたい.

fortran66.hatenablog.com

今月10月22日の日曜日には秋葉原技術書展があるみたいなので,そこで修論研究の気分転換がてら自分の技術的なフラストレーションを解消する良い本に出会えればと思っている.

techbookfest.org


  1. 正直言うと,しょうもない(と言われがちな)技術的な部分も評価されたいし,数多ある数値計算・解析計算・実験のバックグラウンドにある必ずしも物理とは関係のない技術的な困難を「解決できて当然」と一蹴されるのはちょっと抵抗があります.