X10(プログラミング言語)

X10
パラダイムオブジェクト指向
デザイン:ケマル・エブチョール、サラヴァナン・アルムガム、ヴィジェイ・サラスワット、ヴィヴェック・サルカー
開発者IBM
初登場2004年 (2004年
安定版リリース
2.6.2 / 2019年1月8日 (2019年1月8日
タイピングの規律静的強力安全、制約
OSIBM AIXLinuxMac OS XWindows
ライセンスEclipse Public License 1.0
ファイル名拡張子.x10
ウェブx10-lang.org
影響を受けた
C++Java

X10は、DARPAHigh 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!" ); // こんにちはと言う。 } } 

[ 4 ]

参照

参考文献

  1. ^エプシオール、ケマル;サラスワト、ビジェイ;サルカール、ヴィヴェク。 「X10: 階層型並列処理と不均一データ アクセスのためのプログラミング」。CiteSeerX  10.1.1.135.9826
  2. ^ Saraswat, Vijay; Bloom, Bard; Peshansky, Igor; Tardieu, Olivier; Grove, David (2019年1月4日). “X10 Language Specification Version 2.6.2” (PDF) . 2024年5月2日時点のオリジナル(PDF)からのアーカイブ。 2025年8月11日閲覧
  3. ^ Biever, C. 「コンピュータ革命はプログラマーに問題をもたらす」ニューサイエンティスト193 ( 2594)。
  4. ^ GitHubpygments/tests/examplefiles/x10/example.x10