siiky
2023/09/13
2023/09/14
2023/09/14
whitepaper,formal_methods,distributed,petri_nets,programming
https://doi.org/10.1145/3239332.3242767
https://dl.acm.org/doi/10.1145/3239332.3242767
Whitepaper about programming with Petri nets, based on the gen_pnet Erlang library.
v.jorgen_brandt.services_as_petri_nets.gmi
https://github.com/joergen7/gen_pnet
When I first found the library it looked like a waste of Erlang: why not take advantage of Erlang's processes and everything everywhere all at once? After watching the talk I understand now that that was not its purpose, and it makes sense. The purpose of the lib is to model one (Erlang) process as a Petri net, and for that it looks actually pretty good.
The theory used is "high-level interface Petri nets". "High-level" means that tokens can be of any type and have any values of that type; and "interface" means that the nets can interact with the environment, i.e., they have input/output places.
References "Understanding Petri Nets" for more in-depth learning.