English
Related papers

Related papers: Bestow and Atomic: Concurrent Programming using Is…

200 papers

Recently, operator learning, or learning mappings between infinite-dimensional function spaces, has garnered significant attention, notably in relation to learning partial differential equations from data. Conceptually clear when outlined…

Locks are a classic data structure for concurrent programming. We introduce a type system to ensure that names of the asynchronous pi-calculus are used as locks. Our calculus also features a construct to deallocate a lock once we know that…

Logic in Computer Science · Computer Science 2023-09-15 Daniel Hirschkoff , Enguerrand Prebet

Contrary to common belief, a recent work by Ellen, Gelashvili, Shavit, and Zhu has shown that computability does not require multicore architectures to support "strong" synchronization instructions like compare-and-swap, as opposed to…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-05-09 Rati Gelashvili , Idit Keidar , Alexander Spiegelman , Roger Wattenhofer

With the ubiquity of parallel commodity hardware, developers turn to high-level concurrency models such as the actor model to lower the complexity of concurrent software. However, debugging concurrent software is hard, especially for…

Programming Languages · Computer Science 2018-08-21 Dominik Aumayr , Stefan Marr , Clément Béra , Elisa Gonzalez Boix , Hanspeter Mössenböck

This paper considers the modeling and the analysis of the performance of lock-free concurrent data structures. Lock-free designs employ an optimistic conflict control mechanism, allowing several processes to access the shared data object at…

Data Structures and Algorithms · Computer Science 2015-08-17 Aras Atalar , Paul Renaud-Goud , Philippas Tsigas

In the shared variable model of concurrency, guarded atomic actions restrict the possible interference between processes by regions of atomic execution. The guard specifies the condition for entering an atomic region. That is a convenient…

Programming Languages · Computer Science 2025-05-28 Shucai Yao , Emil Sekerinski

Data races are a notorious problem in parallel programming. There has been great research interest in type systems that statically prevent data races. Despite the progress in the safety and usability of these systems, lots of existing…

Programming Languages · Computer Science 2023-09-15 Yichen Xu , Aleksander Boruch-Gruszecki , Martin Odersky

Channel- and actor-based programming languages are both used in practice, but the two are often confused. Languages such as Go provide anonymous processes which communicate using buffers or rendezvous points---known as channels---while…

Programming Languages · Computer Science 2017-05-11 Simon Fowler , Sam Lindley , Philip Wadler

Lock-free data objects offer several advantages over their blocking counterparts, such as being immune to deadlocks and convoying and, more importantly, being highly concurrent. But they share a common disadvantage in that the operations…

Distributed, Parallel, and Cluster Computing · Computer Science 2009-10-05 Daniel Cederman , Philippas Tsigas

Recent mainstream programming languages such as Erlang or Scala have renewed the interest on the Actor model of concurrency. However, the literature on the static analysis of actor systems is still lacking of mature formal methods. In this…

Programming Languages · Computer Science 2012-06-11 Silvia Crafa

In this paper we focus on concurrent processes built on synchronization by means of futures. This concept is an abstraction for processes based on a main execution thread but allowing to delay some computations. The structure of a general…

Discrete Mathematics · Computer Science 2018-03-05 Olivier Bodini , Matthieu Dien , Antoine Genitrini , Alfredo Viola

LaCasa is a type system and programming model to enforce the object capability discipline in Scala, and to provide affine types. One important application of LaCasa's type system is software isolation of concurrent processes. Isolation is…

Programming Languages · Computer Science 2017-04-12 Philipp Haller , Fredrik Sommar

In the past decades, many different programming models for managing concurrency in applications have been proposed, such as the actor model, Communicating Sequential Processes, and Software Transactional Memory. The ubiquity of multi-core…

Programming Languages · Computer Science 2014-06-16 Janwillem Swalens , Stefan Marr , Joeri De Koster , Tom Van Cutsem

Asynchronous programming is widely adopted for building responsive and efficient software, and modern languages such as C# provide async/await primitives to simplify the use of asynchrony. In this paper, we propose an approach for…

Programming Languages · Computer Science 2022-09-15 Sidi Mohamed Beillahi , Ahmed Bouajjani , Constantin Enea , Shuvendu Lahiri

The lock-free, ordered, linked list is an important, standard example of a concurrent data structure. An obvious, practical drawback of textbook implementations is that failed compare-and-swap (CAS) operations lead to retraversal of the…

Data Structures and Algorithms · Computer Science 2020-11-02 Jesper Larsson Träff , Manuel Pöter

Mixed-consistency programming models assist programmers in designing applications that provide high availability while still ensuring application-specific safety invariants. However, existing models often make specific system assumptions,…

Programming Languages · Computer Science 2024-05-27 Julian Haas , Ragnar Mogk , Annette Bieniusa , Mira Mezini

Programming models for concurrency are optimized for dealing with nondeterminism, for example to handle asynchronously arriving events. To shield the developer from data race errors effectively, such models may prevent shared access to data…

Software Engineering · Computer Science 2014-10-24 Mischael Schill , Sebastian Nanz , Bertrand Meyer

We propose a timed and soft extension of Concurrent Constraint Programming. The time extension is based on the hypothesis of bounded asynchrony: the computation takes a bounded period of time and is measured by a discrete global clock.…

Programming Languages · Computer Science 2015-10-07 Stefano Bistarelli , Maurizio Gabbrielli , Maria Chiara Meo , Francesco Santini

Data race conditions in multi-tasking software applications are prevented by serializing access to shared memory resources, ensuring data consistency and deterministic behavior. Traditionally tasks acquire and release locks to synchronize…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-01-24 K. Eric Harper , Thijmen de Gooijer

Concurrent program refinement algebra provides a suitable basis for supporting mechanised reasoning about shared-memory concurrent programs in a compositional manner, for example, it supports the rely/guarantee approach of Jones. The…

Logic in Computer Science · Computer Science 2018-05-30 Ian J. Hayes , Larissa A. Meinicke