English
Related papers

Related papers: Relaxed Operational Semantics of Concurrent Progra…

200 papers

We introduce a denotational semantic framework for shared-memory concurrent programs in a C11-style memory model. This denotational approach is an alternative to techniques based on "execution graphs" and axiomatizations, and it allows for…

Programming Languages · Computer Science 2018-04-13 Ryan Kavanagh , Stephen Brookes

We address the problem of verifying safety properties of concurrent programs running over the Total Store Order (TSO) memory model. Known decision procedures for this model are based on complex encodings of store buffers as lossy channels.…

Formal Languages and Automata Theory · Computer Science 2023-06-22 Parosh Aziz Abdulla , Mohamed Faouzi Atig , Ahmed Bouajjani , Tuan Phong Ngo

In this paper we propose a new approach to the description of a network of interacting processes in a traditional programming language. Special programming languages or extensions to sequential languages are usually designed to express the…

Programming Languages · Computer Science 2017-02-17 Sergey Vostokin

Asynchronous programming has appeared as a programming style that overcomes undesired properties of concurrent programming. Typically in asynchronous models of programming, methods are posted into a post list for latter execution. The order…

Programming Languages · Computer Science 2015-01-06 Mohamed A. El-Zawawy

Making threaded programs safe and easy to reason about is one of the chief difficulties in modern programming. This work provides an efficient execution model for SCOOP, a concurrency approach that provides not only data race freedom but…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-07-28 Scott West , Sebastian Nanz , Bertrand Meyer

Crary and Sullivan's Relaxed Memory Calculus (RMC) proposed a new declarative approach for writing low-level shared memory concurrent programs in the presence of modern relaxed-memory multi-processor architectures and optimizing compilers.…

Programming Languages · Computer Science 2019-04-12 Michael J. Sullivan , Karl Crary , Salil Joshi

We develop a model of concurrent imperative programming with threads. We focus on a small imperative language with cooperative threads which execute without interruption until they terminate or explicitly yield control. We define and study…

Programming Languages · Computer Science 2015-07-01 Martín Abadi , Gordon D. Plotkin

Modern processors deploy a variety of weak memory models, which for efficiency reasons may (appear to) execute instructions in an order different to that specified by the program text. The consequences of instruction reordering can be…

Programming Languages · Computer Science 2018-12-04 Robert J. Colvin , Graeme Smith

The proposed framework provides a general model of concurrent imperative programming. Programs are modeled as formal languages and concurrency as an interleaving (or shuffle) operator. This yields a simple and elegant algebra of programs.…

Programming Languages · Computer Science 2012-09-11 Stephan van Staden

A theoretical memory with limited processing power and internal connectivity at each element is proposed. This memory carries out parallel processing within itself to solve generic array problems. The applicability of this in-memory…

Distributed, Parallel, and Cluster Computing · Computer Science 2010-09-28 Chengpu Wang

The core of a formal semantics of an imperative programming language is a memory model that describes the behavior of operations on the memory. Defining a memory model that matches the description of C in the C11 standard is challenging…

Logic in Computer Science · Computer Science 2015-09-14 Robbert Krebbers

Time is a crucial factor in modelling dynamic behaviours of intelligent agents: activities have a determined temporal duration in a real-world environment, and previous actions influence agents' behaviour. In this paper, we propose a…

Artificial Intelligence · Computer Science 2023-07-11 Stefano Bistarelli , Maria Chiara Meo , Carlo Taticchi

We describe a program logic for weak memory (also known as relaxed memory). The logic is based on Hoare logic within a thread, and rely/guarantee between threads. It is presented via examples, giving proofs of many weak-memory litmus tests.…

Logic in Computer Science · Computer Science 2016-11-07 Richard Bornat , Jade Alglave , Matthew Parkinson

Memory consistency models (MCMs) are at the heart of concurrent programming. They represent the behaviour of concurrent programs at the chip level. To test these models small program snippets called litmus test are generated, which show…

Programming Languages · Computer Science 2018-08-30 Ruth Hoffmann , Özgür Akgün , Susmit Sarkar

This paper discusses the latest generation of the MONARC (MOdels of Networked Analysis at Regional Centers) simulation framework, as a design and modelling tool for large scale distributed systems applied to HEP experiments. A…

Distributed, Parallel, and Cluster Computing · Computer Science 2011-06-28 Ciprian Dobre , Corina Stratan

Transactional memory (TM) allows concurrent processes to organize sequences of operations on shared \emph{data items} into atomic transactions. A transaction may commit, in which case it appears to have executed sequentially or it may…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-11-16 Petr Kuznetsov , Srivatsan Ravi

Modern shared memory multiprocessors permit reordering of memory operations for performance reasons. These reorderings are often a source of subtle bugs in programs written for such architectures. Traditional approaches to verify weak…

Software Engineering · Computer Science 2016-02-29 Ganesh Narayanaswamy , Saurabh Joshi , Daniel Kroening

To manage exceptions, software relies on a key architectural guarantee, precision: that exceptions appear to execute between instructions. However, this definition, dating back over 60 years, fundamentally assumes a sequential programmers…

Hardware Architecture · Computer Science 2024-12-20 Ben Simner , Alasdair Armstrong , Thomas Bauereiss , Brian Campbell , Ohad Kammar , Jean Pichon-Pharabod , and Peter Sewell

This paper presents a program logic for reasoning about multithreaded Java-like programs with dynamic thread creation, thread joining and reentrant object monitors. The logic is based on concurrent separation logic. It is the first detailed…

Logic in Computer Science · Computer Science 2015-07-01 Christian Haack , Marieke Huisman , Clément Hurlin , Afshin Amighi

(To appear in Theory and Practice of Logic Programming (TPLP)) We introduce a systematic, concurrent execution scheme for Constraint Handling Rules (CHR) based on a previously proposed sequential goal-based CHR semantics. We establish…

Programming Languages · Computer Science 2010-06-22 Edmund S. L. Lam , Martin Sulzmann