Fortressは、高性能コンピューティング向けにSun Microsystemsが開発し、米国防高等研究計画局(DARPA)の高生産性コンピューティングシステムプロジェクトからの資金提供を受けた、開発中止となった実験的なプログラミング言語である。言語設計者の1人はGuy L. Steele Jr.で、彼の以前の業績にはScheme、Common Lisp、Javaなどがある。
Fortressという名前は、安全なFortran、つまり「現代のプログラミング言語の原則と同等の抽象化と型安全性を備えた高性能計算のための言語」を意味することを意図していました。[ 1 ]言語の特徴には、暗黙の並列処理、Unicode のサポート、数学的表記に似た具体的な構文が含まれていました。この言語は Fortran に似せるように設計されたものではありません。構文的には、Scala、Standard ML、Haskell に最も似ています。Fortress は、最初から複数の構文スタイルシートを持つように設計されていました。ソースコードは、ASCIIテキスト、Unicode、または整形された画像としてレンダリングできます。これにより、レンダリングされた出力で数学記号やその他の記号をサポートして、読みやすくすることができます。Emacsベースのfortifyというツールは、ASCII ベースの Fortress ソースコードをLaTeX出力に変換します。[ 2 ]
Fortressは、Javaから着想を得たライブラリ内に豊富な機能を備えつつ、高度な並列処理を実現するように設計されていました。例えば、forループ構造は並列処理であり、基盤となる実装によっては必ずしも厳密に線形に反復されるとは限りませんでした。しかし、このfor構造はライブラリ関数であり、言語に組み込まれているのではなく、プログラマーが好みの別のバージョンに置き換えることができました。
Fortress の設計者たちは、その構文を擬似コードにできるだけ近づけ、擬似コードを使用してアルゴリズムを擬似コードで表現する際の英語と標準的な数学表記の一般的な使用パターンを抽出するために、擬似コードを使用した数百ものコンピュータ科学と数学の論文、コース、書籍、ジャーナルを分析しました。そして、擬似コードと実行可能な Fortress との間で 1 対 1 の対応関係を維持するようにコンパイラを作成しました。[ 3 ]
Fortressは、高生産性コンピューティングシステムプロジェクトからの資金提供を受けて作成された3つの言語のうちの1つでした。他の2つは、IBMのX10とCray社のChapelでした。2006年11月、DARPAがHPCSプロジェクトの第3フェーズの資金提供を承認した際、X10とChapelには資金が提供されましたが、Fortressには提供されなかったため[ 4 ] 、 Fortressの将来について不確実性が生じました。
2007年1月、Fortressはオープンソースとしてリリースされました。[ 5 ] Fortress言語仕様のバージョン1.0は、 Java仮想マシン を対象とした準拠実装とともに2008年4月にリリースされました。
2012年7月、スティールは、既存の仮想マシンでFortressの型システムを使用する際の複雑さを理由に、Fortressの積極的な開発は短期間の縮小期間を経て終了すると発表した。[ 6 ]
これは、 Fortress Reference Cardに示されている典型的な「Hello, World!」プログラムの Fortress バージョンです。[ 2 ]
コンポーネント こんにちは エクスポート実行ファイル run() = println("こんにちは、世界!") 終わり export文によってプログラムが実行可能になり、Fortressのすべての実行可能プログラムはrun()関数を実装する必要があります。コンパイルのためにプログラムを保存するファイルは、最初のコンポーネント文で指定されたファイル名と同じ名前でなければなりません。println ()関数は、「Hello, World!」という文字を画面に出力します。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)