Process Algebra as Abstract Data Types
2010, arXiv (Cornell University)
Abstract
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.
References (56)
- E. Astesiano, M. Bidoit, H. Kirchner, B. Krieg-Brückner, P. Mosses, D. Sanella, A.Tarlecki, CASL: The Common Algebraic Specification Language, TCS 286(2)(2002) 153-196.
- E.Astesiano, M. Broy, G..Reggio, Algebraic Specification of Concurrent Systems, In IFIP WG 1.3 Book on Algebraic Foundations of System Specification. (E. Astesiano, B. Krieg-Brückner and H.-J. Kreowski editors), Berlin, Springer Verlag, 1999.
- K.R. Apt, N. Frances, W.P. de Roever, A Proof System for Communicating Sequential Processes, ACM TOPLAS 2(3)(1980) 350-385.
- M. Abadi, A. Gordon, A Calculus for Cryptographic Protocols: The Spi Calculas, Information and Computation 148(1999) 1-70.
- E. Astesiano, A.Giovini, G. Reggio, Processes as Data Types: Observational Semantics and Logic (Extended Abstract), LNCS vol. 469, 1990, pp. 1-20.
- E.Astesiano, G.F.Mascari, G..Reggio, M.Wirsing, On the parametrized Specification of Concurrent Systems, Proc. TAPSOFT'85, LNCS vol. 185, 1985, pp.343-358.
- K.R. Apt, Formal Justification of a Proof System for Communicating Sequential Processes, JACM 30(1)(1983) 197-216.
- E. Astesiano, G. Reggio, Algebraic Specification of Concurrency, In M.Bidoit and C. Choppy, editors, Recent Trends in Data Type Specification, LNCS vol. 655, 1992, pp.1-39.
- H. Bekic, Towards a Mathematical Theory of Processes, in C.B.Jones (Ed.) Programming Languages and their Definition -Hans Bekic (1936-1982), 1984, pp. 168-206.
- S.D.Brookes, C.A.R., Hoare, A.W.Roscoe, A Theory of Communicating Sequential Processes, JACM 31(3)(1984) 560-599.
- J.Bergstra, J.W. Klop, The Algebra of Recursively Defined Processes and the Algebra of Regular Processes, ICALP'84, LNCS vol. 172, 1984, pp.82-94.
- J.Bergstra, J.W. Klop, Process Algebra for Synchronous Communication, Information and Control 60(1-3)(1984) 109-137.
- S.D.Brookes, A.W.Roscoe, An Improved Failures Model for CSP, Seminar on Concurrency, LNCS vol. 197, 1985.
- S.D.Brookes, Communicating Parallel Processes, Symposium in Celebration of the Work of C.A.R. Hoare, Oxford University, MacMillan, 2000.
- M.Broy, P.Pepper, M.Wirsing, On the Algebraic Definition of Programming Languages, TUM-I8204, 1982.
- M.Broy, M.Wirsing, Programming Languages as Abstract Data Types, In M.Dauchet (Ed.), 5 me Coll. Sur les Arbres en Algebre et Programmation, 1980, pp.160-177.
- M.Broy, M.Wirsing, Partial Recursive Functions and Abstract Data Types, EATCS Bull. 11, 1980, pp.34-41.
- M.Broy, M.Wirsing, On the Algebraic Specification of nondeterministic programming languages, E. Astesiano, C.Boehm (eds.), 6 th CAAP, LNCS vol. 112, 1981, pp.162-179.
- M.Broy, M.Wirsing, Partial Abstract Data Types, Acta Informatica 18 (1)(1982) 47-64.
- L.Cardelli, A.D.Gordon, Mobile Ambients, Electronic Notes Theoretical Computer Science, 10, 1997.
- J.C.Cleaveland, Programming Languages Considered as Abstract Data Types. ACM, 1980.
- W. Dosch, G. Mascari and M. Wirsing. On the algebraic specification of databases. Proceedings of the 8th international conference on very large data bases, 1982.
- J. Fiadeiro, A.Lopes, L.Bocchi, Algebraic Semantics of Service Component Modules, J. Fiadeiro and P. Schobbens(Eds.), WADT 2006, LNCS vol. 4409, 2007, pp. 37-55.
- J. Guttag, J Horning, The Algebraic Specification of Abstract Data Types, Acta Information. 10(1978)27-52.
- S.Gilmore, J.Hillston, The PEPA Workbench, A Tool to Support a Process Algebra-based Approach to Performance Modelling, Computer Performance Modelling 1994, 353-368.
- A. Gimblett, M. Roggenbach, B. Schlingloff, Towards a Formal Specification of an Electronic Payment System in CSP-CASL, In J. Fiadeiro, P. Mosses and F. Orejas(Eds.) WADT 2004, LNCS, vol. 3423, 2005, pp. 61-78.
- J.Goguen, J. Thatcher, E. Wagner, J. Wright, Abstract Data Types as Initial Algebras and the Correctness of Data Representation, In Proceedings of Conference on Computer Graphics, Pattern Recognition and Data Structures, 1975, pp. 89-93.
- J. Goguen, J. Thatcher, E. Wagner, An Initial Algebraic Approach to the Specification, Correctness and Implementation of Abstract Data Types, Currend Trends in Progr. Meth. 4(1978) 80-149.
- J.V.Guttag, The Specification and Application to Programming of Abstract Data Types, Ph.D. Thesis, Univ. Toronto, 1975.
- C.A.R., Hoare, Communicating Sequential Processes, CACM 21(8)(1978) 666-677.
- C.A.R., Hoare, A Model for Communicating Sequential Processes, in McKeag and McNaughton (Eds.): On the Construction of Programs, Cambridge Univ. Press, 1980, pp.229-254.
- C.A.R. Hoare, A Calculus of total Correctness of Communicating Sequential Processes, Science of Computer Programming, 1(1)(1981) 49-72.
- Y. Isobe, A complete axiomatic semantics for the CSP stable-failures model, CONCUR, 2006.
- P.Lescanne, Modèls non-deterministe de Types Abstraits, RAIRO Informatique Theorique 16, 1982, pp.225-244.
- A. Lopes, J. Fiadeiro, Algebraic Semantics of Design Abstractions for Context-Awareness. In J. Fiadeiro, P. Mosses and F. Orejas(Eds.) WADT 2004, LNCS, vol. 3423, 2005, pp. 79-83.
- H.Lin, Symbolic Transition Graph with Assignment, Concur 1996, pp.50-65.
- R. Lu, L. Li, Y. Shang, X. Li, On Classical and Quantum Process Algebra as Abstract Data Types, Festschrift Dedicated to Bernd Krieg-Brückner on the Occasion of his 60th Birthday, Feb. 2009, DFKI Bremen.
- R. Lu, Algebraic Semantics of Programs with Dynamic Structure, Science in China, A, 30 (1)(1987) 32-44.
- R.Milner, A Calculus of Communicating Systems, LNCS, vol. 92, 1980.
- R.Milner, Communication and Concurrency, Prentice Hall, 1989.
- R.Milner, J.Parrow, D.Walker, A Calculus of Mobile Processes, Parts I and II, Information and Computation, 100(1992) 1-77. π
- J.Parrow, An Introduction to the -Calculus, Bergstra, Ponse and Smolka (Eds.), Handbook of Process Algebra, 1999.
- G. Plotkin, A structural approach to operational semantics, Technical Report DAIMI, FN-19, Aarhus University, Dept. of Computer Science, 1981.
- D.T.Sanella, A.Tarlecki, On Observational Equivalence and Algebraic Specifications, J.of Comp. Sys. and Sciences, 34(1987) 150-178.
- D.T.Sanella, M.Wirsing, A Kernel Language for Algebraic Specification and Implementation, LNCS, vol. 158, 1983, pp. 413-427.
- D.Sangiorgi, D. Walker, The pi-calculus: a theory of mobile processes, Cambrige University Press. 2003.
- M.Wirsing, Algebraic Specification, MIP-8914, 1989.
- M.Wirsing, Algebraic Specification, Handbook of Theoretical Computer Science (II), 1990, pp. 675-788.
- M.Wirsing, M. Wirsing, P.Pepper, H.Partsch, W.Dosch, M.Broy, On Heirarchies of Abstract Data Type, Acta Informatica 20(1983) 1-33.
- M. Ying, Topology in Process Calculus, Approximate Correctness and Infinite Evolution of Concurrent Programs, Springer, 2001.
- M. Ying, Bisimulation indexes and their applications, Theoretical Computer Science 275(1)(2002) 1-68.
- M. Ying, Pi-calculus with noisy channels, Acta Informatica 41(9)(2005) 525-593.
- C. Zhou, C.A.R. Hoare, Partial Correctness of Communicating Sequential Processes, Proc.
- nd Int. Conf. Distributed Computing Systems, 1981.
- S. Zilles. Algebraic Specification of data types. Computation Structures Group Memo 119, Lab for Computer Science, MIT, 1974. call (compor (x, y), tp) = compor (x, call (y, tp)) call (rp, tp) = tp input (i-proc (c, u, p), c, x) = subst (p, u, x) output (o-proc (c, x, p), c, x) = p input (compol(p, q), c, x) = compol(input(p, c, x), q) input (compor(p, q), c, x) = compor(p, input(q, c, x)) output (compol(p, q), c, x) = compol(output(p, c, x), q) output (compor(p, q), c, x) = compor(p, output(q, c, x)) h-act (tau (p)) = p h-act (compo (i-proc (x, u, p), o-proc (x, v, q
- = compo (subst (p, u, v), q) h-act (compol (p, q)) = compol (h-act (p), q) h-act (compor (p, q)) = compor (p, h-act (q)) tleft (tconf (sum (p, q), tr)) = tconf (p, tr) tright (tconf (sum (p, q), tr)) = tconf (q, tr) tleft (tconf (compo (p, q), tr)) = tconf (compol (p, q), tr) tright (tconf (compo (p, q), tr)) = tconf (compor (p, q), tr) tleft (tconf (compol (p, q), tr)) = tconf (compol (left (p), q), tr) tright (tconf (compol (p, q), tr)) = tconf (compol (right (p), q), tr) tleft (tconf (compor (p, q), tr)) = tconf (compor (p, left (q)), tr) tright (tconf (compor (p, q), tr)) = tconf (compor (p, right (q)), tr) tback (tconf (p, tr)) = tconf (back (p), tr) left (compo (p, q)) = compol (p, q) right (compo (p, q)) = compor (p, q) left (compol (p, q)) = compol (left (p), q) right (compol (p, q)) = compol (right (p), q) left (compor (p, q)) = compor (p, left (q)) right (compor (p, q)) = compor (p, right (q)) back (i-proc (x, u, p)) = i-proc (x, u, p) back (o-proc (x, u, p)) = o-proc (x, u, p) back (tau (p)) = tau (p) back (nil) = nil back (sum (p, q)) = sum (p, q) back (compo (p, q)) = compo (p, q) back (compol (p, q)) = compo (back (p), back (q)) back (compor (p, q)) = compo (back (p), back (q))