| |
|
X10 is an experimental new language
currently under development at IBM in collaboration with academic
partners. The X10 effort is part of the IBM PERCS project (Productive
Easy-to-use Reliable Computer Systems) in the DARPA program on High Productivity Computer Systems.
The PERCS project is focused on a hardware-software co-design
methodology to integrate advances in chip technology, architecture,
operating systems, compilers, programming language and programming
tools to deliver new adaptable, scalable systems that will provide an
order-of-magnitude improvement in development productivity for parallel
applications by 2010.
X10 aims to contribute to this productivity improvement by developing a
new programming model, combined with a new set of tools integrated into
Eclipse and new implementation techniques for delivering optimized
scalable parallelism in a managed runtime environment. X10 is a
type-safe, modern, parallel, distributed object-oriented language
intended to be very easily accessible to Java(TM) programmers. It is
targeted to future low-end and high-end systems with nodes that are
built out of multi-core SMP chips with non-uniform memory hierarchies,
and interconnected in scalable cluster configurations. A member of the
Partitioned Global Address Space (PGAS) family of languages, X10
highlights the explicit reification of locality in the form of places;
lightweight activities embodied in async, future, foreach, and ateach
constructs; constructs for termination detection (finish) and phased
computation (clocks); the use of lock-free synchronization (atomic
blocks); and the manipulation of global arrays and data structures.
An Eclipse-based Integrated Development
Environment (IDE) has been
developed at IBM for X10 to help further increase programmer
productivity by providing state-of-the-art functionality for viewing,
editing, navigating, executing, and manipulating X10 programs. The X10
Development Toolkit (X10DT) is intended to be a full-featured IDE for
X10 offering the features Java programmers have come to love and depend
upon in Eclipse: a source editor with various coding assists,
lightweight information pop-ups, high-level and low-level navigation
views, powerful search capabilities, application launch configuration
management, refactoring, and debugging support. In addition, the X10DT
will include tools, views and refactorings that specifically address
the development of highly concurrent software in X10.
|
|
|
A large subset of the X10 language is
functionally supported for SMP machines, through an X10 to Java translator.
The resulting Java code uses an X10 runtime implemented in Java.
The resulting code can be run on any platform that supports Java 5.0.
Note: This implementation is an initial
prototype implementation. It is focused on functionality and not
performance. While it supports the development of fairly large multi-package
X10 programs, it is not intended for production use.
The X10DT already provides a significant
subset of the functionality
expected of a modern IDE: syntax highlighting, structural outline
views, compiler error annotations placed directly on the source code,
navigation from references to corresponding declarations, "hover help"
that shows information about an entity when hovering over a reference,
"content assistance" that offers completions of identifiers and
expressions, debugging support, and more. In the future, the X10DT will
also include support for indexed search, refactoring, type hierarchy
queries, call graph navigation, and so on. At the moment, the X10DT
supports X10 application developers; in the near future, we will add
support for language developers who wish to alter the X10 compiler or
runtime and take advantage of their enhancements within the X10DT.
|
|
|
|
|
2006.12.09: The second
major release of X10 (v1.0) is now available.
|
|
|