projectfortress.java.net
Fortress(フォートレス)は、高性能を目指して設計された実験的なプログラミング言語であった。米国国防高等研究計画局の高生産性計算機システムプロジェクトの資金援助を受けてサン・マイクロシステムズ研究所で作られた。設計者の一人にScheme、Common Lisp、Javaなどを手がけたガイ・スティール・ジュニアがいる。ただし、現在は開発が中止されている。
言語の名前「Fortress」は英語で「要塞」を意味する言葉であるが、これには「安全な Fortran」という意味が込められている。安全な言語とは、例えば「現代のプログラミング言語に標準的に備わっている、抽象化の仕組みや型の安全性を保証する仕組みを備えた高性能の計算機言語」ということである[1]。この言語はまた、暗黙の並列性や、UNICODE 対応、数学記法(英語版)に似た文法という特徴もある。この言語は Fortran 言語に似せて設計されたわけではない。文法が最も近い言語は Scala、Standard ML、Haskell である。基礎設計レベルで複数のスタイルシートの文法を持つように設計されている。ソースコードは UNICODE 、 ASCII テキスト、あるいは、整形された画像として表示できる。これにより、数学記号やその他の記号をレンダリングされた出力でサポートし、読みやすさを向上させることができる。 Emacsベースのfortifyというツールは、ASCIIベースのFortressソースコードをLaTeXの出力に変換する[2]。
Fortress はまた、Java に由来する高度な並列性と豊富に機能性の両方を兼ね備えている。例えば、forループは基本的に並列演算であり、環境によっては逐次的に実行されない場合がある。しかし、forループはライブラリー関数であり、プログラマーは組み込みの for ループを、他の好きな for ループで置き換えることができる。
for
Fortress言語は「高生産性計算機システムプロジェクト」の三つの言語の中の一つであった。(残りの二つの言語は、IBM 社の X10 言語と、クレイ社の Chapel 言語である)サン・マイクロシステムズは Fortress の将来性が不確実だとして、2006年11月にこのプロジェクトから離脱した[3]。
2007年1月に Fortress は「オープンソース・コミュニティーによるオープンソース・プロジェクト」に姿を変え、「サン以外の人たちが Fortress のコードを書き、オープンソースの Fortress インタプリタで実行するようになった」[4]。Fortress 言語仕様の第 1.0 版は、2008年4月に公開された。Java仮想マシンをターゲットとした実装に準拠した仕様であった。
2012年7月には、減速期間の後、積極的な開発は終了すると発表された。既存の仮想機械上で Fortress 言語の型システムを使うのは複雑であるとのことである[5]。
これは、Fortress Reference Card で紹介されている、典型的なHello worldプログラムのFortress版である[2]。
component hello export Executable run() = println(“Hello, World!”) end
export文はプログラムをexecutableにし、Fortressのすべての実行プログラムはrun()関数を実装しなければならない。コンパイルのためにプログラムを保存するファイルは、最初のcomponent文で指定したものと同じ名前でなければならない。画面に "Hello, World!" の文字を出力するのは、println()関数である。
export
run()
component
println()
CNET News.com