科学技術計算用言語

科学技術計算のための言語としてはFortranが有名でした。昔はコンピュータは研究機関くらいにしか置かれていませんでしたが、世界初の高級言語であるFortranが使われたのがたまたまそういった研究機関だったから、科学技術計算に使われて発展してきたのでしょう。現在は科学技術計算のための言語としては、MatlabMathematicaなどの計算に特化した言語を使ったり、C/C++Javaなどにライブラリを突っ込んで使ったり、RubyPythonのようなライトウェイト言語でやってみたり、もともとFortranがやっていたことを様々な言語がやっています。SASとかRとかの統計に特化した言語も、役割分担に参加しています。

そんななかで「To do for Fortran what Java did for C(JavaがCにやったことを、Fortranにやる)」というモットーでFortressという言語が2010年をメドにデザインが進められているそうです。ループ構造を「繰り返し処理」と「パラメータ変数ごとに計算を行っているだけ」という二つに分離して考え、後者をメインにとらえているため、ループはデフォルトで並列処理します。いままでの言語とはちょっと違った雰囲気です。言語仕様を太らせるのではなくライブラリをどんどん充実させるという方針はSchemeSRFIとかと似たアプローチです。

数式は何世紀もの知識の蓄積があるからそれをそのまま使うという方針なので、言語の見た目はもろに数式。また、括弧類は数学記号としての意味を持たせるので、{}はコードブロックではなく集合を表し、[]は行列、()はタプルだとか。オペレーター・オーバーロードも多用して、より数式っぽく書けるようにするそうです。ただピンチのときにはemacsやviを使いたいので、ASCIIとかUnicodeで打ち込めるようにもするとのこと。なんだかAPLとかJとかを思い出します。