11 research outputs found
Towards sound refactoring in erlang
Erlang is an actor-based programming
language used extensively for building concurrent, reactive
systems that are highly available and suff er minimum
downtime. Such systems are often mission critical, making
system correctness vital. Refactoring is code restructuring
that improves the code but does not change
behaviour. While using automated refactoring tools is
less error-prone than performing refactorings manually,
automated refactoring tools still cannot guarantee that
the refactoring is correct, i.e., program behaviour is preserved.
This leads to lack of trust in automated refactoring
tools. We rst survey solutions to this problem
proposed in the literature. Erlang refactoring tools as
commonly use approximation techniques which do not
guarantee behaviour while some other works propose the
use of formal methodologies. In this work we aim to
develop a formal methodology for refactoring Erlang
code. We study behavioural preorders, with a special focus
on the testing preorder as it seems most suited to
our purpose.peer-reviewe
The complexity of asynchronous model based testing
This is the post-print version of the final paper published in Theoretical Computer Science. The published article is available from the link below. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. Copyright @ 2012 Elsevier B.V.In model based testing (MBT), testing is based on a model MM that typically is expressed using a state-based language such as an input output transition system (IOTS). Most approaches to MBT assume that communications between the system under test (SUT) and its environment are synchronous. However, many systems interact with their environment through asynchronous channels and the presence of such channels changes the nature of testing. In this paper we investigate the situation in which the SUT interacts with its environment through asynchronous channels and the problems of producing test cases to reach a state, execute a transition, or to distinguish two states. In addition, we investigate the Oracle Problem. All four problems are explored for both FIFO and non-FIFO channels. It is known that the Oracle Problem can be solved in polynomial time for FIFO channels but we also show that the three test case generation problems can also be solved in polynomial time in the case where the IOTS is observable but the general test generation problems are EXPTIME-hard. For non-FIFO channels we prove that all of the test case generation problems are EXPTIME-hard and the Oracle Problem in NP-hard, even if we restrict attention to deterministic IOTSs
On Barbs and Labels in Reactive Systems
Reactive systems (RSs) represent a meta-framework aimed at deriving behavioral congruences for those computational formalisms whose operational semantics is provided by reduction rules. RSs proved a flexible specification device, yet so far most of the efforts dealing with their behavioural semantics focused on idem pushouts (IPOs) and saturated (also known as dynamic) bisimulations. In this paper we introduce a novel, intermediate behavioural equivalence: L-bisimilarity, which is able to recast both its IPO and saturated counterparts. The equivalence is parametric with respect to a set L of RSs labels, and it is shown that under mild conditions on L it is indeed a congruence. Furthermore, L-bisimilarity can also recast the notion of barbed semantics for RSs, proposed by the same authors in a previous paper. In order to provide a suitable test-bed, we instantiate our proposal by addressing the semantics of (asynchronous) CCS and of the calculus of mobile ambients
Linearity, Persistence and Testing Semantics in the Asynchronous Pi-Calculus
International audienceIn [CSVV06] the authors studied the expressiveness of persistence in the asynchronous pi calculus (Api) wrt weak barbed congruence. The study is incomplete because it ignores the issue of divergence. In this paper we present an expressiveness study of persistence in the asynchronous pi-calculus (Api) wrt DeNicola and Hennesy's testing scenario which is sensitive to divergence. We consider Api and theree sub-languages of it, each capturing one source of persistence: the persistent-input calculus (PIApi), the persistent-output calculus (POApi) and persistent calculus (PApi). In [CSVV06] the authors showed encodings from Api into semipersistent calculi are correct wrt weak barbed congruence. In this paper we prove that, under some general conditions, there cannot be an encoding from Api into a (semi)-persistent calculus preserving the must testing semantics. [CSVV06 ] C. Palamidessi, V. Saraswat, F. Valencia and B. Victor. On the Expressiveness of Linearity vs Persistence in the Asynchronous Pi Calculus. LICS 2006:59-68,2006
Session Types = Intersection Types + Union Types
We propose a semantically grounded theory of session types which relies on
intersection and union types. We argue that intersection and union types are
natural candidates for modeling branching points in session types and we show
that the resulting theory overcomes some important defects of related
behavioral theories. In particular, intersections and unions provide a native
solution to the problem of computing joins and meets of session types. Also,
the subtyping relation turns out to be a pre-congruence, while this is not
always the case in related behavioral theories.Comment: In Proceedings ITRS 2010, arXiv:1101.410
A synchronous pi-calculus
The SL synchronous programming model is a relaxation of the Esterel
synchronous model where the reaction to the absence of a signal within an
instant can only happen at the next instant. In previous work, we have
revisited the SL synchronous programming model. In particular, we have
discussed an alternative design of the model including thread spawning and
recursive definitions, introduced a CPS translation to a tail recursive form,
and proposed a notion of bisimulation equivalence. In the present work, we
extend the tail recursive model with first-order data types obtaining a
non-deterministic synchronous model whose complexity is comparable to the one
of the pi-calculus. We show that our approach to bisimulation equivalence can
cope with this extension and in particular that labelled bisimulation can be
characterised as a contextual bisimulation
Linearity, Persistence and Testing Semantics in the Asynchronous Pi-Calculus
International audienceIn [CSVV06] the authors studied the expressiveness of persistence in the asynchronous pi calculus (Api) wrt weak barbed congruence. The study is incomplete because it ignores the issue of divergence. In this paper we present an expressiveness study of persistence in the asynchronous pi-calculus (Api) wrt DeNicola and Hennesy's testing scenario which is sensitive to divergence. We consider Api and theree sub-languages of it, each capturing one source of persistence: the persistent-input calculus (PIApi), the persistent-output calculus (POApi) and persistent calculus (PApi). In [CSVV06] the authors showed encodings from Api into semipersistent calculi are correct wrt weak barbed congruence. In this paper we prove that, under some general conditions, there cannot be an encoding from Api into a (semi)-persistent calculus preserving the must testing semantics. [CSVV06 ] C. Palamidessi, V. Saraswat, F. Valencia and B. Victor. On the Expressiveness of Linearity vs Persistence in the Asynchronous Pi Calculus. LICS 2006:59-68,2006
Adequacy Issues in Reactive Systems: Barbed Semantics for Mobile Ambients
Reactive systems represent a meta-framework aimed at deriving behavioral congruences for those specification formalisms whose operational semantics is provided by rewriting rules.
The aim of this thesis is to address one of the main issues of the framework, concerning the adequacy of the standard observational semantics (the IPO and the saturated one) in modelling the concrete semantics of actual formalisms. The problem is that IPO-bisimilarity (obtained considering only minimal labels) is often too discriminating, while the saturated one (via all labels) may be too coarse, and intermediate proposals should then be put forward.
We then introduce a more expressive semantics for reactive systems which, thanks to its flexibility,
allows for recasting a wide variety of observational, bisimulation-based equivalences. In particular, we propose suitable notions of barbed and weak barbed semantics for reactive systems, and an efficient characterization of them through the IPO-transition systems.
We also propose a novel, more general behavioural equivalence: L-bisimilarity, which is able to recast both its IPO and saturated counterparts, as well as the barbed one. The equivalence is parametric with respect to a set L of reactive systems labels, and it is shown that under mild conditions on L it is a congruence.
In order to provide a suitable test-bed, we instantiate our proposal over the asynchronous CCS and, most importantly, over the mobile ambients calculus, whose semantics is still in a flux