The X10 language

Vijay Saraswat <[email protected]> Sun, 12 Jun 2011 07:33:45 -0400
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
E users may be interested in X10 (http://x10-lang.org), a modern 
object-oriented language designed for high performance and productivity 
at scale. X10 is designed as a co-language for JVM languages, providing 
a single simple framework for concurrency, scale-out and heterogeneous 
acceleration.  X10 is being developed under the Eclipse open source license.

X10 is organized around the notion of places and asynchrony. A place is 
a collection of data together with activities operating on it. X10 
supports fine-grained concurrency (async S is a statement if S is, and 
represents S running in parallel with the current activity), 
place-shifting (at (p) S executes statement S at place p), atomicity 
(atomic S is a statement if S is) and distributed termination detection 
(finish S is a statement if S is; it executes S and waits for all 
spawned activities to terminate before progressing).

We have just released version 2.2. X10 compiles to Java and runs on 
multiple JVMs, and also compiles to C++ and runs natively. X10 runs on 
clusters of x86/PowerPC processors, on symmetric multi-processors, on 
high-end machines such as the Blue Gene and other HPC machines, as well 
as on Windows/.Linux/MacOs laptops. A restricted set of X10 programs can 
also be compiled for NVidia GPUs. X10 runs on TCP, and can also exploit 
high-performance interconnects such as Infiniband.

E language developers/users may be particularly interested in the 
constraint-based type system in X10. This is described in an 2008 OOPSLA 
paper. It permits the programmer to specify data-dependencies within 
types and have the compiler check them statically. Teh constraint system 
currently implemented (equaities and disequalities over uninterpreted 
values) is very simple but powerful (can express some ownership type 
idioms). We expect to  teach the compiler about arithmetic, tuples and 
boolean algebra at some point.

You can find more information on the X10'11 Workshop Program at 
http://x10-lang.org/workshop/program.html including a set of overview 
slides.