Content deleted Content added
<references/> tag |
m →History: HTTP to HTTPS for SourceForge |
||
(164 intermediate revisions by 70 users not shown) | |||
Line 1:
{{Short description|Programming language by IBM}}
'''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]▼
{{Infobox programming language
| name = X10
| logo =
| paradigm = [[object-oriented programming|Object-oriented]]
| year = {{Start date and age|2004}}
| designer = Kemal Ebcioğlu, Saravanan Arumugam, Vijay Saraswat, and Vivek Sarkar
| developer = [[IBM]]
| latest release version = [http://x10-lang.org/releases/x10-release-262.html 2.6.2]
| latest release date = {{Start date and age|2019|01|08}}
| typing = [[Static type system|Static]], [[Type system#Strong and weak type systems|strong]], [[Type safety|safe]], constrained
| implementations =
| dialects =
| influenced by = [[C++]], [[Java (programming language)|Java]]
| influenced =
| programming language =
| operating system = [[IBM AIX]], [[Linux]], [[Mac OS X]], [[Windows]]
| license = [[Eclipse Public License]] 1.0
| file ext = .x10
| website = {{URL|x10-lang.org}}
| wikibooks =
| caption =
}}
▲'''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.
==History==
Its primary authors are Kemal Ebcioğlu, Saravanan Arumugam (Aswath), Vijay Saraswat, and Vivek Sarkar.<ref>{{cite CiteSeerX | last1 = Ebcioğlu | first1 = Kemal | last2 = Saraswat | first2 = Vijay | last3 = Sarkar | first3 = Vivek | title = X10: Programming for Hierarchical Parallelism and NonUniform Data Access | citeseerx = 10.1.1.135.9826 }}</ref>
X10 is designed specifically for [[parallel computing]] using the [[partitioned global address space]] (PGAS) model.
X10 uses the concept of parent and child relationships for tasks in order to prevent the lock stalemate that occurs when two or more processes wait for the other to finish before they can end. A parent has child tasks that themselves can become parents. However parents will 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 a tree hierarchy and enforcing that all parent tasks start before child tasks do, a lockout never arises. <ref>Biever, C. "Computer revolution poses problems for programmers", New Scientist (Vol 193, Number 2594)</ref>▼
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.<ref>{{cite web | last1 = Saraswat | first1 = Vijay | last2 = Bloom | first2 = Bard | last3 = Peshansky | first3 = Igor | last4 = Tardieu | first4 = Olivier | last5 = Grove | first5 = David | url = https://x10.sourceforge.net/documentation/languagespec/x10-latest.pdf | title = X10 Language Specification Version 2.6.2 | date = January 4, 2019 }}{{Dead link|date=July 2025 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
▲X10 uses the concept of parent and child relationships for
==Example code==
===[[Hello, World!]]===
{{sxhl|2=x10|1=
/** Example file for the X10 programming language (http://x10-lang.org).
*/
class Example {
public static def main(Rail[String]) {
Console.OUT.println("Hello, World!"); // say hello.
}
}
}}<ref>{{github|https://github.com/pygments/pygments/blob/master/tests/examplefiles/x10/example.x10|pygments/tests/examplefiles/x10/example.x10}}</ref>
==See also==
* [[Chapel (programming language)|Chapel]]
* [[Coarray Fortran]]
* [[Concurrency (computer science)|Concurrency]]
* [[Fortress (programming language)|Fortress]]
* [[Non-blocking algorithm]]
* [[Parallel programming model]]
* [[Unified Parallel C]]
==References==
{{Reflist}}
==External links==
* {{Official website}}
* [https://web.archive.org/web/20110719203355/http://wsdmhp09.hpcl.gwu.edu/kayi.pdf Overview of PGAS languages]
* [https://web.archive.org/web/20050508165133/http://www.research.ibm.com/vee04/Sarkar.pdf Vivek Sarkar's X10 slides]
* [
{{IBM FOSS}}
{{Numerical analysis software}}
[[Category:IBM software]]
[[Category:Array programming languages]]
{{compu-lang-stub}}▼
[[Category:Concurrent programming languages]]
[[Category:JVM programming languages]]
|