Process Algebra as Abstract Data Types

In this paper we introduced an algebraic semantics for process algebra in form of abstract data types. For that purpose, we developed a particular type of algebra, the seed algebra, which describes exactly the behavior of a process within a labeled transition system. We have shown the possibility of characterizing the bisimulation of two processes with the isomorphism of their corresponding seed algebras. We pointed out that the traditional concept of isomorphism of algebra does not apply here, because there is even no one-one correspondence between the elements of two seed algebras. The lack of this one-one correspondence comes from the non-deterministic choice of transitions of a process. We introduce a technique of hidden operations to mask unwanted details of elements of a seed algebra, which only reflect non-determinism or other implicit control mechanism of process transition. Elements of a seed algebra are considered as indistinguishable if they show the same behavior after these unwanted details are masked. Each class of indistinguishable elements is called a non-hidden closure. We proved that bisimulation of two processes is equivalent to isomorphism of non-hidden closures of two seed algebras representing these two processes. We call this kind of isomorphism a deep isomorphism. We get different models of seed algebra by specifying different axiom systems for the same signature. Each model corresponds to a different kind of bisimulation. By proving the relations between these models we also established relations between 10 different bisimulations, which form a acyclic directed graph.

[1]  Stephen Gilmore,et al.  The PEPA Workbench: A Tool to Support a Process Algebra-based Approach to Performance Modelling , 1994, Computer Performance Evaluation.

[2]  Luca Cardelli,et al.  Mobile Ambients , 1998, Foundations of Software Science and Computation Structure.

[3]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[4]  Walter Dosch,et al.  On the Algebraic Specification of Databases , 1982, VLDB.

[5]  R Lu ALGEBRAIC SEMANTICS OF PROGRAMS WITH DYNAMIC STRUCTURE , 1987 .

[6]  Aniello Murano Communicating Sequential Processes (CSP) , 2009, Encyclopedia of Parallel Computing.

[7]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

[8]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[9]  Mingsheng Ying Bisimulation indexes and their applications , 2002, Theor. Comput. Sci..

[10]  C. A. R. Hoare,et al.  Partial Correctness of Communicating Sequential Processes , 1981, ICDCS.

[11]  José Luiz Fiadeiro,et al.  Algebraic Semantics of Design Abstractions for Context-Awareness , 2004, WADT.

[12]  C. A. R. Hoare,et al.  A Model for Communicating Sequential Processes , 1980, On the Construction of Programs.

[13]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[14]  Joachim Parrow,et al.  An Introduction to the π-Calculus , 2001, Handbook of Process Algebra.

[15]  Martín Abadi,et al.  A calculus for cryptographic protocols: the spi calculus , 1997, CCS '97.

[16]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[17]  Alexander K. Petrenko,et al.  Electronic Notes in Theoretical Computer Science , 2009 .

[18]  Mingsheng Ying Topology in process calculus - approximate correctness and infinite evolution of concurrent programs , 2001 .

[19]  Gianna Reggio,et al.  Algebraic Specification of Concurrency , 1991, COMPASS/ADT.

[20]  Mingsheng Ying,et al.  π-calculus with noisy channels , 2005, Acta Informatica.

[21]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[22]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[23]  Hartmut Ehrig,et al.  A Kernel Language for Algebraic Specification and Implementation , 1983, ADT.

[24]  Markus Roggenbach,et al.  Towards a Formal Specification of an Electronic Payment System in CSP-CASL , 2004, WADT.

[25]  J. Craig Cleaveland,et al.  Programming languages considered as abstract data types , 1980, ACM '80.

[26]  Hans Bekic,et al.  Towards a Mathematical Theory of Processes , 1984, Programming Languages and Their Definition.

[27]  Gianna Reggio,et al.  Processes as Data Types: Observational Semantics and Logic , 1990, Semantics of Systems of Concurrent Processes.

[28]  James J. Horning,et al.  The algebraic specification of abstract data types , 1978, Acta Informatica.

[29]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[30]  Hans-Jörg Kreowski,et al.  Recent Trends in Data Type Specification , 1985, Informatik-Fachberichte.

[31]  Yoshinao Isobe,et al.  A Complete Axiomatic Semantics for the CSP Stable-Failures Model , 2006, CONCUR.

[32]  Huimin Lin,et al.  Symbolic Transition Graph with Assignment , 1996, CONCUR.

[33]  Manfred Broy,et al.  On the Algebraic Specification of Nondeterministic Programming Languages , 1981, CAAP.

[34]  Laura Bocchi,et al.  Algebraic Semantics of Service Component Modules , 2006, WADT.

[35]  Manfred Broy,et al.  On the algebraic definition of programming languages , 1987, TOPL.

[36]  Krzysztof R. Apt,et al.  Formal Justification of a Proof System for Communicating Sequential Processes , 1983, JACM.

[37]  Peter D. Mosses,et al.  CASL: the Common Algebraic Specification Language , 2002, Theor. Comput. Sci..

[38]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[39]  Donald Sannella,et al.  On Observational Equivalence and Algebraic Specification , 1985, TAPSOFT, Vol.1.

[40]  Mingsheng Ying,et al.  Topology in Process Calculus , 2012, Springer New York.

[41]  Jan A. Bergstra,et al.  The Algebra of Recursively Defined Processes and the Algebra of Regular Processes , 1984, ICALP.

[42]  Manfred Broy,et al.  Programming languages as abstract data types , 1980, CLAAP.