For me, the software theory is really complicated at present, just because I have not touched such a subject before. What I have studied in the past is the engineering, which in fact, is always teaching one how to solve the real-world problem. But since I will become the post graduate student majoring in Computer Software Theory of ShangHai Jiaotong University, the condition would be changed. I am very grateful to the god I have such a chance, therefore, I won’t be take much time to give out nonsense here…..
At the first glance of these two words, I am as strange as you are, maybe not. I have a lot of question in my mind. what does the process really mean? is it the common process in our computer? For I have been reading π-calculus in the past three days ( you can notice my previous article ), in it there were plenty of knowledge on the process algebra. Hence, I take such two purposes ( get the answer of the two question and understand the π-calculus) to enter in the world of process algebra.
Introduction
The Process Algebra is considered as an area of research in concurrency theory -- the theory of parallel and distributed systems in computer science. Origins are traced back to the early seventies of the twentieth century, and developments since that time are sketched. In this place, The Process is not the common process in our computer, algebra means using an algebraic/axiomatic approach in describing the process, as we will talk on it in the following sections.
What is a process algebra ?
The term process algebra here has its own meaning. For the word “Process”, We refer it to behavior of a system. A system is anything showing behavior, in particular the execution of a software system, or the actions of a human being. Behavior is the total of events and actions that a system can perform., the order in which the they can be executed. However, there are other aspects of the execution such as timing and probabilities. In the process algebra, We discard the other aspects. So, What we consider is only the abstraction and idealization of the ‘real’ behavior. That is to say, we have an observation of the behavior, the action is only an chosen unit of the observation. Therefore, the action is usually though to be discrete. This is why the process is also called a discrete event system.
The word algebra denotes that we take algebraic/axiomatic approach and method in talking about behavior.
Let me take a definition as an example first.
Definition 1 A group has a signature (G, *, u, -1) with the laws or axioms.
- a*(b*c) = (a*b)*c
- u*a = a = a*u
- a*a-1 = a-1*a = u
The group is in fact a mathematical structure with operators satisfying the group axioms. Likewise, We can say that a process algebra is any mathematical structure satisfying the axioms given for the basic operators. Of course, process is an element of process algebra, by using axioms, we can perform calculations with processes.
The simple model input/output function is the basic of the automata theory, which has a very simple behavior. As for the automata, we know that it has many states including initial and terminal state. There are also plenty of transitions among these states. When we talk about the equivalence of the automata, a behavior is characterized by the set of executions from the initial state to a final state. An algebra that allows equational reasoning about automata is the algebra of regular expressions.
As the study going on , We can find that the former definition would be found to be lacking of some situations. We know that during the execution from initial state to final state, a system may also interact with other systems. This is needed in order to describe parallel or distributed systems. When dealing with interacting systems, We say we are doing concurrency theory. This is why we sometimes called process algebra an approach to concurrency theory. Therefore, a process algebra will usually have parallel composition as a basic operator.
Therefore, We can say that process algebra is the study of the behavior of parallel or distributed systems by algebraic means. It has means to describe or specify such systems, talk about parallel composition, as well as alternative and sequential composition. Moreover, we can use the equational reasoning to do the verification work.
Three Operators and axioms are as follows:
+ alternative compostion
; sequential composition
|| parallel composition
- x + y = y + x
- x + ( y + z ) = ( x + y ) + z
- x + x = x
- ( x + y ) ; z = x ; z + y ; z
- ( x ; y ) ; z = x ; ( y ; z )
- x || y = y || x
- ( x || y ) || z = x || ( y || z )
We can say that any mathematical structure with three binary operations satisfying these 7 laws is a process algebra.
In fact, we can find out that there is no parallel composition compound to other operators. This, which is lack in these seven laws, is said to be at the heart of the process algebra. It is also called expansion theorem.
CCS
CCS is short for Calculus of Communicating system. It is the first complete process algebra in the history, which was formulated by Milner.A.J.R.G. It is composed of a set of equations and a semantical model (like a’b | y / c). In it, The author introduce the flow graph, with ports where a named port synchronizes with the post with its co-name.
Extension
Apart from all above aspects, process algebra has many extensions such as Tooling, Verification, Data, Time, Mobility, Probabilities and so on. The research on the Mobility properties of Process algebra is known as π-calculus, As my first two notes concerned, it is about the equetional and semantical model. However, it was still process algebra, and it still satisfy the seven calculating laws. Only, The representation of the behavior and algebra has been changed.
Conclusion
By now, I can say that I have a general expression for the process algebra. In my opinion, it is that we use algebraic or axiomatic way to describe behavior. The process algebra is the abstraction and idealization of the real-world system’ events and transitions. I will go on with my study on it in the future.
------------------------------------------------------------------------------
This article mainly refered to "A Brief History of Process Algebra" witten by J.C.M Baeten.