11 research outputs found

    Towards sound refactoring in erlang

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore