X10: an object-oriented approach to non-uniform cluster computing
the java language specification .