9,113 research outputs found
Process Algebras
Process Algebras are mathematically rigorous languages with well defined semantics that permit describing and verifying properties of concurrent communicating systems.
They can be seen as models of processes, regarded as agents that act and interact continuously with other similar agents and with their common environment. The agents may be real-world objects (even people), or they may be artifacts, embodied perhaps in computer hardware or software systems.
Many different approaches (operational, denotational, algebraic) are taken for describing the meaning of processes. However, the operational approach is the reference one. By relying on the so called Structural Operational Semantics (SOS), labelled transition systems are built and composed by using the different operators of the many different process algebras. Behavioral equivalences are used to abstract from unwanted details and identify those systems that react similarly to external
experiments
Read Operators and their Expressiveness in Process Algebras
We study two different ways to enhance PAFAS, a process algebra for modelling
asynchronous timed concurrent systems, with non-blocking reading actions. We
first add reading in the form of a read-action prefix operator. This operator
is very flexible, but its somewhat complex semantics requires two types of
transition relations. We also present a read-set prefix operator with a simpler
semantics, but with syntactic restrictions. We discuss the expressiveness of
read prefixes; in particular, we compare them to read-arcs in Petri nets and
justify the simple semantics of the second variant by showing that its
processes can be translated into processes of the first with timed-bisimilar
behaviour. It is still an open problem whether the first algebra is more
expressive than the second; we give a number of laws that are interesting in
their own right, and can help to find a backward translation.Comment: In Proceedings EXPRESS 2011, arXiv:1108.407
Recommended from our members
Interaction of agents and environments
A new abstract model of interaction between agents and environments considered as objects of different types is introduced. Agents are represented by means of labelled transition systems considered up to bisimilarity. The equivalence of agents is characterised in terms of an algebra of behaviours which is a continuous algebra with approximation and two operations: nondeterministic choice and prefixing. Environments are introduced as agents supplied with an insertion function which takes the behaviour of an agent and the behaviour of an environment as arguments and returns the new behaviour of an environment. Arbitrary continuous functions can be used as insertion functions, and we use functions defined by means of rewriting logic as computable ones. The transformation of environment behaviours defined by the insertion function also defines a new type of agent equivalence--- insertion equivalence. Two behaviours are insertion equivalent if they define the same transformation of an environment. The properties of this equivalence are studied. Three main types of insertion functions are used to develop interesting applications: one-step insertion, head insertion, and look-ahead insertion functions
Uniform Labeled Transition Systems for Nondeterministic, Probabilistic, and Stochastic Process Calculi
Labeled transition systems are typically used to represent the behavior of
nondeterministic processes, with labeled transitions defining a one-step state
to-state reachability relation. This model has been recently made more general
by modifying the transition relation in such a way that it associates with any
source state and transition label a reachability distribution, i.e., a function
mapping each possible target state to a value of some domain that expresses the
degree of one-step reachability of that target state. In this extended
abstract, we show how the resulting model, called ULTraS from Uniform Labeled
Transition System, can be naturally used to give semantics to a fully
nondeterministic, a fully probabilistic, and a fully stochastic variant of a
CSP-like process language.Comment: In Proceedings PACO 2011, arXiv:1108.145
Recommended from our members
A general theory of action languages
We present a general theory of action-based languages as a paradigm, for the description, of those computational
systems which include elements of concurrency and networking, and extend this approach
to describe dist.ributed systems and also t,o describe the interaction of a system, with an environment.
As part of this approach we introduce the Action Language as a common model for the class of nondeterministic
concurrent programming languages and define its intensional and interaction semantics
in terrors of continuous transformation of environment behavior. This semantics i.s specialized for
programs with stores, and extended to describe distributed computations
Maude: specification and programming in rewriting logic
Maude is a high-level language and a high-performance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and theories. The underlying equational logic chosen for Maude is membership equational logic, that has sorts, subsorts, operator overloading, and partiality definable by membership and equality conditions. Rewriting logic is reflective, in the sense of being able to express its own metalevel at the object level. Reflection is systematically exploited in Maude endowing the language with powerful metaprogramming capabilities, including both user-definable module operations and declarative strategies to guide the deduction process. This paper explains and illustrates with examples the main concepts of Maude's language design, including its underlying logic, functional, system and object-oriented modules, as well as parameterized modules, theories, and views. We also explain how Maude supports reflection, metaprogramming and internal strategies. The paper outlines the principles underlying the Maude system implementation, including its semicompilation techniques. We conclude with some remarks about applications, work on a formal environment for Maude, and a mobile language extension of Maude
Future-based Static Analysis of Message Passing Programs
Message passing is widely used in industry to develop programs consisting of
several distributed communicating components. Developing functionally correct
message passing software is very challenging due to the concurrent nature of
message exchanges. Nonetheless, many safety-critical applications rely on the
message passing paradigm, including air traffic control systems and emergency
services, which makes proving their correctness crucial. We focus on the
modular verification of MPI programs by statically verifying concrete Java
code. We use separation logic to reason about local correctness and define
abstractions of the communication protocol in the process algebra used by
mCRL2. We call these abstractions futures as they predict how components will
interact during program execution. We establish a provable link between futures
and program code and analyse the abstract futures via model checking to prove
global correctness. Finally, we verify a leader election protocol to
demonstrate our approach.Comment: In Proceedings PLACES 2016, arXiv:1606.0540
- …