1,211 research outputs found
Modelling and Verifying an Object-Oriented Concurrency Model in GROOVE
SCOOP is a programming model and language that allows concurrent programming
at a high level of abstraction. Several approaches to verifying SCOOP programs
have been proposed in the past, but none of them operate directly on the source
code without modifications or annotations.
We propose a fully automatic approach to verifying (a subset of) SCOOP
programs by translation to graph-based models. First, we present a graph
transformation based semantics for SCOOP. We present an implementation of the
model in the state-of-the-art model checker GROOVE, which can be used to
simulate programs and verify concurrency and consistency properties, such as
the impossibility of deadlocks occurring or the absence of postcondition
violations. Second, we present a translation tool that operates on SCOOP
program code and generates input for the model. We evaluate our approach by
inspecting a number of programs in the form of case studies.Comment: 124 pages, Master's Thesis at ETH Z\"uric
Towards Practical Graph-Based Verification for an Object-Oriented Concurrency Model
To harness the power of multi-core and distributed platforms, and to make the
development of concurrent software more accessible to software engineers,
different object-oriented concurrency models such as SCOOP have been proposed.
Despite the practical importance of analysing SCOOP programs, there are
currently no general verification approaches that operate directly on program
code without additional annotations. One reason for this is the multitude of
partially conflicting semantic formalisations for SCOOP (either in theory or
by-implementation). Here, we propose a simple graph transformation system (GTS)
based run-time semantics for SCOOP that grasps the most common features of all
known semantics of the language. This run-time model is implemented in the
state-of-the-art GTS tool GROOVE, which allows us to simulate, analyse, and
verify a subset of SCOOP programs with respect to deadlocks and other
behavioural properties. Besides proposing the first approach to verify SCOOP
programs by automatic translation to GTS, we also highlight our experiences of
applying GTS (and especially GROOVE) for specifying semantics in the form of a
run-time model, which should be transferable to GTS models for other concurrent
languages and libraries.Comment: In Proceedings GaM 2015, arXiv:1504.0244
- …