| X10 | |
|---|---|
| パラダイム | オブジェクト指向 |
| デザイン: | ケマル・エブチョール、サラヴァナン・アルムガム、ヴィジェイ・サラスワット、ヴィヴェック・サルカー |
| 開発者 | IBM |
| 初登場 | 2004年 (2004年) |
| 安定版リリース | 2.6.2 / 2019年1月8日 (2019年1月8日) |
| タイピングの規律 | 静的、強力、安全、制約 |
| OS | IBM AIX、Linux、Mac OS X、Windows |
| ライセンス | Eclipse Public License 1.0 |
| ファイル名拡張子 | .x10 |
| ウェブ | x10-lang.org |
| 影響を受けた | |
| C++、Java | |
X10は、DARPAのHigh Productivity Computing Systems (HPCS) プログラムによって資金提供されているProductive, Easy-to-use, Reliable Computing System ( PERCS )プロジェクトの一環として、 IBMのThomas J. Watson Research Centerで開発されているプログラミング言語です。
主な著者は、ケマル・エブチョール、サラヴァナン・アルムガム(アスワス)、ヴィジャイ・サラスワト、ヴィヴェック・サルカルです。[ 1 ]
X10は、分割グローバルアドレス空間(PGAS)モデルを用いた並列計算専用に設計されています。計算は複数のプレースに分割され、各プレースはデータを保持し、それらのデータを操作する1つ以上のアクティビティをホストします。オブジェクト指向プログラミングのための制約型システム(依存型の一種)を備えています。その他の機能としては、ユーザー定義のプリミティブ構造体、グローバル分散配列、構造化並列処理と非構造化並列処理などがあります。[ 2 ]
X10では、アクティビティに親子関係の概念を採用しています。これは、2つ以上のプロセスが互いの終了を待って完了できない状態になることで発生するロックの膠着状態を防ぐためです。アクティビティは1つ以上の子アクティビティを生成することができ、子アクティビティは子アクティビティを持つことができます。子アクティビティは親アクティビティの終了を待つことはできませんが、親アクティビティはfinishコマンドを使用して子アクティビティの終了を待つことができます。[ 3 ]
/** X10プログラミング言語(http://x10-lang.org)のサンプルファイル。*/ class Example { public static def main(Rail[String]) { Console.OUT.println( "Hello, World!" ); // こんにちはと言う。 } }