X10 is a new object-oriented, type-safe programming language
for programming the next generation of high performance systems.
X10 is designed and developed by IBM.
The official website for X10 is
This website is used for the development and distribution of a
free X10 compiler and run-time
based on the XTC framework.
While developed in close contact with the designers of X10 at IBM there are significant differences in syntax and semantics between the (current) IBM prototype and language specification. Those differences arise primarily from the fact that the X10-XTC compiler attempts to implement what might be close to the (non-existant) 0.5 specification of the language, whereas the IBM reference implementation targets the 0.41 specification.
We hope that 0.5 will add operator overloading, generics and region types and thus the X10-XTC compiler is build trying to support these concepts.
Another key difference is that the current X10-XTC compiler does not support close integration of X10 and Java code (however, Java code can be called using classes that are declared to be extern). On the technical side, the IBM compiler compiles X10 code to Java source code which is then compiled to Java bytecode by javac. The XTC-X10 compiler produces Tucson IR which is currently interpreted by an interpreter written in Java (but is supposed to be compiled to C or native code in the future). The reason is that Tucson IR will hopefully be easier to compile and optimize compared with Java ASTs. As a result, equivalent X10 code should run slower with XTC-X10 today, but might run as fast as UPC code once we are a bit further along.
XTC-X10 is currently under heavy development. The current system is able to interpret various benchmarks (such as Linpack). However, there are no compiler optimizations and the interpreter is very simple. The current performance of the interpreter and the lack of public documentation on the language itself makes the system not suitable for general use at this time. However, it should be possible to run smaller X10 programs based on the examples provided. Please report bugs to mantis.
XTC-X10 is licensed under the GNU GPL.
You can access the current development version of XTC-X10 using subversion:
You need to obtain both the tree for XTC (which provides the general compiler infrastructure
and Java-specific tools) and the separate X10C tree (which only contains code relating to X10).
$ svn checkout https://gnunet.org/projects/xtc/
$ svn checkout https://gnunet.org/projects/x10c/
The current alpha-release of XTC-X10 is x10-xtc-0.3.2.jar.
A draft of a first paper on the type system, A Type System for Distributed Arrays, is now available.
XTC and XTC-X10 are developed by Christian Grothoff. Some testcases (X10 source code to test the parser) were obtained from the IBM X10 CVS repository (and are redistributed with permission).