The Askemos virtual machine follows the semantics of pi-calculus.
This design style has been widely found beneficial for instance
in Hardware (especially FPGA) Design and the Erlang programming system.
A place of the Askemos DVM executes
when it receives a message.
A reply function
reply = function(place, message)
is computed for each step, where
denoting the answer the process step yields to the incoming
The programmer used to traditional operating system terms
might think of the reply element content as a list all those
system calls which the function needs to complete
and which might modify values.
a two-ari function defined by the ActionDocument.
A read only accessor to the aggregate denoting the current input.
A r/o (read type request) or r/w (write type request) accessor
to the aggregate denoting "this" place.
Often called "me".
The input area (message and place)
and the output area (reply)
each are described as an xml document,
and the function is defined as an XSLT transformation.
These process step
are executed by several physical
machines in parallel and a
over the value of the reply is required for the step to be actually
A place in this virtual machine
can be understood as the container of an
(See John Hughes,
Generalising Monads to Arrows)
or a continuation
which is evaluated in steps.
- Read more at LtU:
mondas for beginners
and a collection of monad links.
Looks like PiDuce
implements quite a simillar processing paradigm.