Fortress
Fortress(フォートレス)は、高性能を目指して設計された実験的なプログラミング言語であった。米国国防高等研究計画局の高生産性計算機システムプロジェクトの資金援助を受けてサン・マイクロシステムズ研究所で作られた。設計者の一人にScheme、Common Lisp、Javaなどを手がけたガイ・スティール・ジュニアがいる。ただし、現在は開発が中止されている。
開発者 | サン・マイクロシステムズ研究所 |
---|---|
最新リリース | 1.0_5033/ 2011年9月7日 |
影響を受けた言語 | FORTRAN、Scala、Haskell |
プラットフォーム | Java仮想マシン |
ライセンス | BSDライセンス |
ウェブサイト |
projectfortress.java.net > |
特徴
編集言語の名前「Fortress」は英語で「要塞」を意味する言葉であるが、これには「安全な Fortran」という意味が込められている。安全な言語とは、例えば「現代のプログラミング言語に標準的に備わっている、抽象化の仕組みや型の安全性を保証する仕組みを備えた高性能の計算機言語」ということである[1]。この言語はまた、暗黙の並列性や、UNICODE 対応、数学記法に似た文法という特徴もある。この言語は Fortran 言語に似せて設計されたわけではない。文法が最も近い言語は Scala、Standard ML、Haskell である。基礎設計レベルで複数のスタイルシートの文法を持つように設計されている。ソースコードは UNICODE 、 ASCII テキスト、あるいは、整形された画像として表示できる。これにより、数学記号やその他の記号をレンダリングされた出力でサポートし、読みやすさを向上させることができる。 Emacsベースのfortifyというツールは、ASCIIベースのFortressソースコードをLaTeXの出力に変換する[2]。
Fortress はまた、Java に由来する高度な並列性と豊富に機能性の両方を兼ね備えている。例えば、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]。
例:Hello world!
編集これは、Fortress Reference Card で紹介されている、典型的なHello worldプログラムのFortress版である[2]。
component hello export Executable run() = println(“Hello, World!”) end
export
文はプログラムをexecutableにし、Fortressのすべての実行プログラムはrun()
関数を実装しなければならない。コンパイルのためにプログラムを保存するファイルは、最初のcomponent
文で指定したものと同じ名前でなければならない。画面に "Hello, World!" の文字を出力するのは、println()
関数である。
脚注
編集- ^ Draft specification
- ^ a b “Project Fortress Reference Card” (PDF). Java.net. 2016年3月4日時点のオリジナルよりアーカイブ。2016年9月24日閲覧。
- ^ Sun Not Selected for HPCS Phase III: My Thoughts
- ^ 「GBC/ACM: Meeting - What's Cool about Fortress」、ガイ・スティール・ジュニア。
- ^ Fortress Wrapping Up
関連項目
編集外部リンク
編集- Project Fortress
- Active Timeline of Specification and Reference Implementation
- The Fortress Language Specification (Latest version is 1.0, March 31, 2008) (PDFファイル)
- The Soul of Fortress (ガイ・スティール・ジュニアへのインタビュー)
- Fortress Open Source Project Home
- Project Fortress Mailing Lists
- Programming Language Research Group
- Fortress Publications and Specifications
- Fortress Plugin for Eclipse
- Fortress FAQ
- Fortress Programming Language Tutorial (PDFファイル)
- Lambda the Ultimate 文書
- Sun's Fortran replacement goes open-source (
CNET News.com
、2007年12月1日) - Project Fortress 発表資料