Concurrent Clustered Programming

It's been a while since the last LtU link to Vijay Saraswat papers.

Concurrent Clustered Programming

We present the concurrency and distribution primitives of X10, a modern, statically typed, class-based object-oriented (OO) programming language, designed for high productivity programming of scalable applications on high-end machines. The basic move in the X10 programming model is to reify locality through a notion of place, which hosts multiple data items and activities that operate on them. Aggregate objects (such as arrays) may be distributed across multiple places. Activities may dynamically spawn new activities in mulitple places and sequence them through a finish operation that detects termination of activities. Atomicity is obtained through the use of atomic blocks. Activities may repeatedly detect quiescence of a data-dependent collection of (distributed) activities through a notion of clocks, generalizing barriers. Thus X10 has a handful of orthogonal constructs for space, time, sequencing and atomicity. X10 smoothly combines and generalizes the current dominant paradigms for shared memory computing and message passing. We present a bisimulation-based operational semantics for X10 building on the formal semantics for "Middleweight Java''. We establish the central theorem of X10: programs without conditional atomic blocks do not deadlock.
To appear in the Proceedings of CONCUR, August 2005.
[on edit: added missing link, sorry]

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

No link?

No link?

Google sais

it's here.

Comparison to Oz/Alice?

Some of the statements from the paper may sound strange to people with exposure to Oz/Alice. It would be interesting to hear Peter's comments on this paper.

At the first glance, X10 seems much more complex - is it for a reason?

Hereditary lines

Just checked my copy of CTM to ensure it cites two Saraswat papers. I had that feeling... Maybe because of this post.

Still, while I enjoyed the papers from 90es (e.g., Semantic Foundations of Concurrent Constraint Programming), the X10 seems too much influenced by Java for my taste (it may be because I use Java as my primary PL). Does this indeed make it more applicable for practical problems or lures more programmers into learning it?

other papers

While I can't really follow them, I took away some ideas from these papers by Saraswat.

They deal with, for example, handling default values in programming with continuous change.