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.