PolyLarva is a language-agnostic runtime verification tool, which converts a PolyLarvaScript into a monitor for a given system. While an implementation for PolyLarva exists, the language and its compilation have not been formalised. We therefore present a formal implementation-independent model which describes the behaviour of PolyLarvaScript, comprising of the μLarvaScript grammar and of a set of operational semantics. This allows us to prove important properties, such as determinism, and also enables us to reason about ways of re-designing the tool in a more scalable way. We also present a collection of denotational mappings for μLarvaScript converting the constructs of our grammar into constructs of a formal actor-based model, thus providing an Actor semantics for μLarvaScript. We are also able to prove certain correctness properties of the denotational translation such as that the denoted Actors behave in a way which corresponds to the behaviour described by our implementation-independent model. We finally present DistPolyLarva, a prototype implementation of the distributed PolyLarva tool, which implements the new actor-based semantics over a language that can natively handle distribution and concurrency called Erlang.
[1]
Gordon J. Pace,et al.
polyLarva: Runtime Verification with Configurable Resource-Aware Monitoring Boundaries
,
2012,
SEFM.
[2]
Joe Armstrong,et al.
Programming Erlang: Software for a Concurrent World
,
1993
.
[3]
A MANJULAK,et al.
DISTRIBUTED COMPUTING APPROACHES FOR SCALABILITY AND HIGH PERFORMANCE
,
2010
.
[4]
John L. Gustafson,et al.
Reevaluating Amdahl's law
,
1988,
CACM.
[5]
Philipp Haller,et al.
Actors in Scala
,
2012
.
[6]
Martin Leucker,et al.
Runtime Verification for LTL and TLTL
,
2011,
TSEM.
[7]
Christian Colombo,et al.
Practical runtime monitoring with impact guarantees of java programs with real-time constraints
,
2008
.
[8]
Gul Agha,et al.
Actors: a model for reasoning about open distributed systems
,
2001,
FME 2001.
[9]
Adrian Francalanza,et al.
Synthesising Correct Concurrent Runtime Monitors in Erlang
,
2013
.