'''X10''' is a [[programming language]] being developed by [[IBM]] at the [[Thomas J. Watson Research Center]] as part of [[DARPA]]'s [[High Productivity Computing Systems]] (HPCS) program. Its primary authors are Kemal Ebcioglu, Vijay Saraswat, and Vivek Sarkar. [http://www.aurorasoft.net/workshops/lar04/Author_Files/Papers/Vivek_Sarkar_LaR_04_Paper_V1.pdf]
X10 is designed specifically for [[parallel programming]]. It will beis an "extended [[subset]]" of the [[Java (programming language)|Java]] programming language, strongly resembling it in most aspects, but featuring customadditional designedsupport for arrays and concurrency operations. X10 uses a [[Partitioned global address space]] model. It willsupports supportboth [[object-oriented programming|object-oriented]] and non-object-oriented programming paradigms.
X10 uses the concept of parent and child relationships for tasks in order to prevent the lock stalemate that occurscan occur when two or more processes wait for theeach other to finish before they can endcomplete. A parenttask hasmay childspawn tasksone thator themselvesmore canchild becometasks, parents.which may However parents willthemselves have a command called "finish" that they can issue to children. Children cannot wait for a parent to finish, but a parent can wait for a child before finishing. This approach of using athe tree"finish" hierarchy and enforcing that all parent tasks start before child tasks do, a lockout never arisescommand. <ref>Biever, C. "Computer revolution poses problems for programmers", New Scientist (Vol 193, Number 2594)</ref>