Jump to content

X10 (programming language)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Citation bot (talk | contribs) at 07:10, 21 November 2020 (Alter: template type. | You can use this bot yourself. Report bugs here. | Suggested by Abductive | All pages linked from cached copy of User:Abductive/sandbox | via #UCB_webform_linked 18/440). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
X10
ParadigmObject-oriented
Designed byKemal Ebcioğlu, Vijay Saraswat, and Vivek Sarkar
DeveloperIBM
First appeared2004
Stable release
2.6.2 / January 8, 2019; 6 years ago (2019-01-08)
Typing disciplineStatic, strong, safe, constrained
OSIBM AIX, Linux, Mac OS X, Windows
LicenseEclipse Public License 1.0
Filename extensions.x10
Websitex10-lang.org
Influenced by
C++, Java

X10 is a programming language being developed by IBM at the Thomas J. Watson Research Center as part of the Productive, Easy-to-use, Reliable Computing System (PERCS) project funded by DARPA's High Productivity Computing Systems (HPCS) program. Its primary authors are Saravanan Arumugam (Aswath), Kemal Ebcioğlu, Vijay Saraswat, and Vivek Sarkar.[1]

X10 is designed specifically for parallel computing using the partitioned global address space (PGAS) model. A computation is divided among a set of places, each of which holds some data and hosts one or more activities that operate on those data. It has a constrained type system for object-oriented programming, a form of dependent types. Other features include user-defined primitive struct types; globally distributed arrays, and structured and unstructured parallelism.[2]

X10 uses the concept of parent and child relationships for activities to prevent the lock stalemate that can occur when two or more processes wait for each other to finish before they can complete. An activity may spawn one or more child activities, which may themselves have children. Children cannot wait for a parent to finish, but a parent can wait for a child using the finish command.[3]

See also

References

  1. ^ Ebcioğlu, Kemal; Saraswat, Vijay; Sarkar, Vivek. "X10: Programming for Hierarchical Parallelism and NonUniform Data Access" (Document). CiteSeerX 10.1.1.135.9826. {{cite document}}: Cite document requires |publisher= (help); Unknown parameter |citeseerx= ignored (help)
  2. ^ Saraswat, Vijay; Bloom, Bard; Peshansky, Igor; Tardieu, Olivier; Grove, David (January 4, 2019). "X10 Language Specification Version 2.6.2" (PDF) (Document). {{cite document}}: Cite document requires |publisher= (help); Unknown parameter |url= ignored (help)
  3. ^ Biever, C. "Computer revolution poses problems for programmers". New Scientist. 193 (2594).