Ok. So I’m still tweaking syntax, to try to find a way of writing π-calculus in a way that’s
easy for me to write in my editor, and for you to read in your browser. Here’s the latest version:
- Sequential Composition:
Process1.Process2
.
- Send expressions:
!channel(tuple).Process
- Receive expressions:
?channel(tuple).Process
- New channel expression
new(name,...) { Process }
- Process duplication expression:
*(Process)
- Parallel composition:
Process1 | Process2
.
- Choice composition:
Process1 + Process2
.
- Null process:
∅
So, in this syntax, the final version of the storage cell from yesterdays post
is:
NewCell[creator,initval]=new(read,write){ (Cell[read,write,initval]
| !creator(read,write)) }
Cell[read,write,val]=( !read(val).Cell[read,write,val]
+ ?write(v).Cell[read,write,v])
Now, let’s try to use π-calculus to do something that actually involves real concurrency.
Continue reading →
Like this:
Like Loading...