A. Bate, and G. Lowe. Communicating Process Architectures 2012, page 135--154. (August 2012)
Abstract
This paper presents a software tool for visualising and
reasoning about the behaviour of message-passing concurrent
programs built with the CSO library for the Scala
programming language. It describes the models needed to
represent the construction of process networks and the
runtime behaviour of the resulting program. We detail the
manner in which information is extracted from the use of
concurrency primitives in order to maintain these models and
how these models are diagrammed. Our implementation of
dynamic deadlock detection is explained. The tool
can produce a sequence diagram of process communications,
the communication network depicting the pairs of processes
which share a communication channel, and the trees resulting
from the composition of processes. Furthermore, it allows
for behavioural specifications to be defined and then
checked at runtime, and guarantees to detect the illegal
usage of concurrency primitives that could otherwise lead to
deadlock or data loss. Our implementation imposes only a
small overhead on the program under inspection.
%0 Conference Paper
%1 BateLowe12
%A Bate, Andrew
%A Lowe, Gavin
%B Communicating Process Architectures 2012
%D 2012
%E Welch, Peter H.
%E Barnes, Frederick R. M.
%E Chalmers, Kevin
%E Pedersen, Jan Bækgaard
%E Sampson, Adam T.
%K CSO CSP Concurrency Debugging Processes Scala
%P 135--154
%T A Debugger for Communicating Scala Objects
%X This paper presents a software tool for visualising and
reasoning about the behaviour of message-passing concurrent
programs built with the CSO library for the Scala
programming language. It describes the models needed to
represent the construction of process networks and the
runtime behaviour of the resulting program. We detail the
manner in which information is extracted from the use of
concurrency primitives in order to maintain these models and
how these models are diagrammed. Our implementation of
dynamic deadlock detection is explained. The tool
can produce a sequence diagram of process communications,
the communication network depicting the pairs of processes
which share a communication channel, and the trees resulting
from the composition of processes. Furthermore, it allows
for behavioural specifications to be defined and then
checked at runtime, and guarantees to detect the illegal
usage of concurrency primitives that could otherwise lead to
deadlock or data loss. Our implementation imposes only a
small overhead on the program under inspection.
%@ 978-0-9565409-5-9
@inproceedings{BateLowe12,
abstract = {This paper presents a software tool for visualising and
reasoning about the behaviour of message-passing concurrent
programs built with the CSO library for the Scala
programming language. It describes the models needed to
represent the construction of process networks and the
runtime behaviour of the resulting program. We detail the
manner in which information is extracted from the use of
concurrency primitives in order to maintain these models and
how these models are diagrammed. Our implementation of
dynamic deadlock detection is explained. The tool
can produce a sequence diagram of process communications,
the communication network depicting the pairs of processes
which share a communication channel, and the trees resulting
from the composition of processes. Furthermore, it allows
for behavioural specifications to be defined and then
checked at runtime, and guarantees to detect the illegal
usage of concurrency primitives that could otherwise lead to
deadlock or data loss. Our implementation imposes only a
small overhead on the program under inspection.},
added-at = {2017-01-26T11:38:04.000+0100},
author = {Bate, Andrew and Lowe, Gavin},
biburl = {https://www.bibsonomy.org/bibtex/242856cfab961905a594c68e202f908db/gron},
booktitle = {{C}ommunicating {P}rocess {A}rchitectures 2012},
editor = {Welch, Peter H. and Barnes, Frederick R. M. and Chalmers, Kevin and Pedersen, Jan Bækgaard and Sampson, Adam T.},
interhash = {7bfd07a6ea25bc64dabcdba06c70e35b},
intrahash = {42856cfab961905a594c68e202f908db},
isbn = {978-0-9565409-5-9},
keywords = {CSO CSP Concurrency Debugging Processes Scala},
month = aug,
pages = {135--154},
timestamp = {2017-01-26T11:38:04.000+0100},
title = {{A} {D}ebugger for {C}ommunicating {S}cala {O}bjects},
year = 2012
}