Fortress

Fortress:高性能を目指した実験的プログラミング言語



Fortress(フォートレス)は、高性能を目指して設計された実験的なプログラミング言語でした。米国国防高等研究計画局(DARPA)の高生産性計算機システムプロジェクトの資金援助を受けて、サン・マイクロシステム研究所で開発されました。設計者の一人には、SchemeCommon LispJavaなどを手がけたガイ・スティール・ジュニアが名を連ねています。しかし、残念ながら現在は開発が中止されています。

Fortressの特徴



言語の名前「Fortress」は、英語で「要塞」を意味しますが、「安全な Fortran」という意味も込められています。ここで言う「安全な言語」とは、現代的なプログラミング言語に標準的に備わっている、抽象化の仕組みや型の安全性を保証する仕組みを備えた高性能な計算機言語を指します。

Fortressには、以下のような特徴があります。

暗黙の並列性: プログラマが明示的に指示しなくても、コンパイラが自動的に並列処理を行うように設計されています。
UNICODE対応: 多様な文字コードを扱うことができ、国際的なアプリケーション開発に適しています。
数学記法に似た文法: 数学者が直感的に理解しやすいように、数式に近い記述が可能です。

Fortressの文法は、FortranよりもScala、Standard ML、Haskellといった関数型言語に似ています。また、基礎設計レベルで複数のスタイルシートの文法を持つように設計されており、ソースコードはUNICODEASCIIテキスト、あるいは整形された画像として表示できます。これにより、数学記号やその他の記号をレンダリングされた出力でサポートし、読みやすさを向上させることができます。

Emacsベースのfortifyというツールを使用すると、ASCIIベースのFortressソースコードをLaTeXの出力に変換できます。

Fortressは、Javaに由来する高度な並列性と豊富な機能性を兼ね備えています。例えば、forループは基本的に並列演算であり、環境によっては逐次的に実行されない場合があります。ただし、forループはライブラリ関数であり、プログラマーは組み込みのforループを、他の好きなforループで置き換えることができます。

Fortressの歴史



Fortressは、「高生産性計算機システムプロジェクト」の3つの言語のうちの1つでした。残りの2つは、IBMのX10言語と、クレイ社のChapel言語です。しかし、サン・マイクロシステムズはFortressの将来性が不確実だとして、2006年11月にこのプロジェクトから離脱しました。

2007年1月、Fortressは「オープンソース・コミュニティーによるオープンソース・プロジェクト」として再出発しました。これにより、サン以外の開発者もFortressのコードを書き、オープンソースのFortressインタプリタで実行できるようになりました。Fortress言語仕様の第1.0版は、2008年4月に公開され、Java仮想マシンをターゲットとした実装に準拠した仕様となっていました。

しかし、2012年7月には、積極的な開発は終了すると発表されました。既存の仮想機械上でFortress言語の型システムを使うのは複雑であることが理由として挙げられています。

Hello Worldプログラムの例



以下は、Fortress Reference Cardで紹介されている、典型的なHello world|Hello_worldプログラムのFortress版です。

fortress
component Hello
export run()
run() = println("Hello, World!")
end


`export`文はプログラムを実行可能にし、Fortressのすべての実行プログラムは`run()`関数を実装する必要があります。コンパイルのためにプログラムを保存するファイルは、最初の`component`文で指定したものと同じ名前でなければなりません。画面に "Hello, World!" の文字を出力するのは、`println()`関数です。

関連情報



区分化大域アドレス空間
Chapel
X10 (プログラミング言語)

外部リンク



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 発表資料

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。