Hi,

I started work on an implementation for a Coloured Petri-Nets simulator.
A current snapshot of the code and a link to an introduction to CPNs can
be found at http://www.inf.tu-dresden.de/~tr16 . CPNs (or Petri Nets in
general) are used to model possibly distributed systems. Dependencies
can be modelled a lot better than with normal state machines and they are
more powerful than most types of automatons. Additionally, they are
easy to read. If you don't know anything about Petri-Nets, I really recommend
to read an introduction. They're cool :)

Once finished and used they should make a lot of POE stuff easier to maintain
and develop. I guess I will demonstrate it with a CPN for the client
ftp module (after the editor is usable). I plan (and have started writing)
a simple editor / simulator GUI frontend (cpne), which should make everything a
lot more comfortable.

There are quite a few differences between the nets that use ML and this
implementation. Perl hasn't got a real type system nor is it a functional
programming language. Therefore arc expressions must determine the tokens
on _their_ place that could be part of a step (and determine the bindings).
Guard expressions need to check equality of bindings explicitely, there
can be no real implicit check because you cannot automatically compare without
types. Outgoing arcs just produce tokens.

There are no docs (there are detailed design plans but not in digital form)
yet. API might change. Work on libraries has just started. Embedding the
net in POE sessions has not been tested, but this is not a lot of code so
this should work I guess. Fortunately the core CPN code (PetriNet::Coloured,
PetriNet::Coloured::(Place,Transition)::* should work, although I have
just tested it with t/test1.pl. More testing will follow once cpne can
be used. Maybe hierarchical nets. I do not plan to implement analysis
functions for nets right now. 

Please tell me if you are interested in more information or would like to
contribute, e.g. with the java stuff ;)


Torvald

Reply via email to