2005 | OriginalPaper | Buchkapitel
Concurrent Clustered Programming
verfasst von : Vijay Saraswat, Radha Jagadeesan
Erschienen in: CONCUR 2005 – Concurrency Theory
Verlag: Springer Berlin Heidelberg
Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.
Wählen Sie Textabschnitte aus um mit Künstlicher Intelligenz passenden Patente zu finden. powered by
Markieren Sie Textabschnitte, um KI-gestützt weitere passende Inhalte zu finden. powered by
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.