Compositional semantics for real-time distributed computing
Information and Computation
Type systems for distributed data structures
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Proof System for Communicating Sequential Processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
The semantics of future and an application
Journal of Functional Programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Concurrent clustered programming
CONCUR 2005 - Concurrency Theory
Refinement calculus: a basis for translation validation, debugging and certification
Theoretical Computer Science - Algebraic methods in language processing
An assertion-based proof system for multithreaded Java
Theoretical Computer Science - Formal methods for components and objects
Static Detection of Place Locality and Elimination of Runtime Checks
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
A complete guide to the future
ESOP'07 Proceedings of the 16th European conference on Programming
Hi-index | 0.00 |
Due to advances in hardware architectures such as multi-core/multi-threaded architectures, various refinements of the parallel programming models such as distributed shared space, global address space and partitioned global address space (PGAS) etc., are widely prevalent in programming languages designed for high performance computing. In this paper, we shall discuss a preliminary work on a proof system for such a language. The language referred to as PGAS0, is essentially an object-oriented language with features such as statically fixed set of places, asynchronous creation of activities, futures, atomics for synchronization etc. Many of the features of PGAS0 are taken from the new experimental language X10 (built around Java) under design at IBM. The language distinguishes between local and remote data access with reference to threads. The atomic is the only construct that can be used for synchronization in PGAS0 and is executed in a mutually exclusive manner at a place. One of the main safety properties of a PGAS0 program is that a thread should not access non-local data object directly by dereferencing but use the construct future to obtain remote data. We shall describe the semantics of PGAS0 and illustrate a proof system for the same with the motivation of establishing locality of data (an extremely useful from performance perspective). Further, we show how the same proof system can be used for establishing other concurrency properties.