Logic of Global Synchrony

An intermediate-level specification notation, Logs, is presented for PRAM/BSP-style programming. It extends pre-post style semantics to reveal state at points of global synchronization before termination (if that occurs). The result is an integration of the pre-post, finite and reactive-process styles of specification and in particular an extension of standard BSP. The language is provided with a complete set of laws, formulated to benefit from a simple predicative semantics and to be quite close to programming intuition. The language is compositional, and parallel composition is simply logical conjunction. Use of Logs, and of the laws for reasoningab out it, is demonstrated on the problem of the dining philosophers.