Second Calculus of Binary Relations as a Concurrent Programming Language.

1997 ◽  
Author(s):  
Vaughan R. Pratt
2021 ◽  
Vol 178 (3) ◽  
pp. 229-266
Author(s):  
Ivan Lanese ◽  
Adrián Palacios ◽  
Germán Vidal

Causal-consistent reversible debugging is an innovative technique for debugging concurrent systems. It allows one to go back in the execution focusing on the actions that most likely caused a visible misbehavior. When such an action is selected, the debugger undoes it, including all and only its consequences. This operation is called a causal-consistent rollback. In this way, the user can avoid being distracted by the actions of other, unrelated processes. In this work, we introduce its dual notion: causal-consistent replay. We allow the user to record an execution of a running program and, in contrast to traditional replay debuggers, to reproduce a visible misbehavior inside the debugger including all and only its causes. Furthermore, we present a unified framework that combines both causal-consistent replay and causal-consistent rollback. Although most of the ideas that we present are rather general, we focus on a popular functional and concurrent programming language based on message passing: Erlang.


1996 ◽  
Vol 6 (2) ◽  
pp. 127-139 ◽  
Author(s):  
Nicoletta Sabadini ◽  
Sebastiano Vigna ◽  
Robert F. C. Walters

In this paper, we propose a new and elegant definition of the class of recursive functions, which is analogous to Kleene's definition but differs in the primitives taken, thus demonstrating the computational power of the concurrent programming language introduced in Walters (1991), Walters (1992) and Khalil and Walters (1993).The definition can be immediately rephrased for any distributive graph in a countably extensive category with products, thus allowing a wide, natural generalization of computable functions.


Author(s):  
V. M. Dhivya Shri ◽  
K. Reshma

Transactional memory (TM) promises to simplify concurrent programming. Language-based constructs allow programmers to denote atomic regions declaratively. Its implementations operate by tracking loads and stores to memory and by detecting concurrent conflicts. TM allows programmers to write simpler programs that are composable and deadlock-freeThis essay presents remarkable similarities between transactional Memory and garbage collection. The connections are fascinating in their own right, and they let us better stand one technology by thinking about the corresponding issues for the other.


1991 ◽  
Vol 02 (02) ◽  
pp. 101-131 ◽  
Author(s):  
THANH TUNG NGUYEN

The paper gives a self-contained account of a calculus of relations from basic operations through the treatment of recursive relation equations. This calculus serves as an algebraic apparatus for defining the denotational semantics of Dijkstra’s nondeterministic sequential programming language. Nondeterministic programs are modeled by binary relations, objects of an algebraic structure founded upon the operations “union”, “left restriction”, “demonic composition”, “demonic union”, and the ordering “restriction of”. Recursion and iteration are interpreted as fixed points of continuous relationals. Developed in the framework of set theory, this calculus may be regarded as a systematic generalization of the functional style.


Sign in / Sign up

Export Citation Format

Share Document