Concurrent programs are difficult to write, reason about, re-use, and maintain. In particular, for system-level ions that use a shared memory abstraction for thread or process syn...
Design involves reasoning about descriptions of design artefacts, reasoning about design requirements and reasoning about design process objectives (such as keeping to deadlines an...
Very recently, a (fuzzy modal) logic to reason about coherent conditional probability, in the sense of de Finetti, has been introduced by the authors. Under this approach, a condi...
We consider a parallel Algol-like language, combining procedures with shared-variable parallelism. Procedures permit encapsulation of common parallel programming idioms. Local var...
The predominant thread-based approach to concurrent programming is bug-prone, difficult to reason about, and does not scale well to large numbers of processors. Sieves provide a s...