Abstract
The Curry-coloured Petri net (CCPN) simulation combines Petri nets with the purely functional logic programming language Curry. The most notable aspects of the CCPN simulator are the absence of side effects, the use of logic program evaluation for the transition binding search and a concurrent simulation. Furthermore, the inscribed programs can be non-deterministic.
In this contribution we present the tools that were developed so far: simulator, editor, reachability graph and library.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
We spell Coloured Petri net in its original form but otherwise use American English.
- 2.
A guide and the resources for the installation of the CCPN tool set can be found at https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn/wikis/pn19.
- 3.
The occurrence of Java exceptions breaks this assumption which is a problem.
- 4.
A monad is a versatile Haskell type class that can be implemented by specific data types. It is used by the CCPN simulator to offer simulation actions that operate on a simulation state and are easy to combine and mix with user-provided pure code. The properties of monads guarantee that this can be achieved without directly exposing the simulation state and its implementation to the library user. The CCPN simulator provides multiple monad data types that encapsulate different aspects of the simulation state. The high-level monad type in the SimulationMonad module additionally encapsulates the IO side effects in the compilation of CCPN inscriptions. See [16] for a detailed introduction to monads.
- 5.
It offers a monad transformer that forms a monad based on any instance type given by the library user. This can be used to explore multiple markings for the same simulation steps instead of just a single simulation trace at a time.
References
Albert, E., Hanus, M., Huch, F., Oliver, J., Vidal, G.: Operational semantics for declarative multi-paradigm languages. J. Symb. Comput. 40(1), 795–829 (2005)
Antoy, S., Hanus, M., Libby, S.: Proving non-deterministic computations in agda. In: Proceedings of WFLP 2016. Electronic Proceedings in Theoretical Computer Science, vol. 234, pp. 180–195. Open Publishing Association (2017)
BraĂŸel, B., Hanus, M., Peemöller, B., Reck, F.: KiCS2: a new compiler from curry to Haskell. In: Kuchen, H. (ed.) WFLP 2011. LNCS, vol. 6816, pp. 1–18. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22531-4_1
Delgado Friedrichs, F.: Referenznetze mit Anschriften in Scheme. Diploma thesis, University of Hamburg, Department of Informatics, September 2007
Hanus, M. (ed.): Curry: an integrated functional logic language (vers. 0.9.0) (2016). http://www.curry-language.org
Hillah, L., Kindler, E., Kordon, F., Petrucci, L., Trèves, N.: A primer on the Petri Net Markup Language and ISO/IEC 15909–2. Petri Net Newsl. 76, 9–28 (2009)
Jensen, K.: Coloured Petri Nets: a high level language for system design and analysis. In: Rozenberg, G. (ed.) ICATPN 1989. LNCS, vol. 483, pp. 342–416. Springer, Heidelberg (1991). https://doi.org/10.1007/3-540-53863-1_31
Jensen, K., Kristensen, L.M., Wells, L.: Coloured Petri Nets and CPN Tools for modelling and validation of concurrent systems. IJSTTT 9(3), 213–254 (2007)
Kristensen, L.M., Christensen, S.: Implementing Coloured Petri Nets using a functional programming language. High. Order Symb. Comput. 17(3), 207–243 (2004)
Kummer, O., Wienberg, F., Duvigneau, M., Cabac, L., Haustermann, M., Mosteller, D.: Renew - The Reference Net Workshop, June 2016. http://www.renew.de/, release 2.5
Kummer, O.: Referenznetze. Logos Verlag, Berlin (2002)
Reinke, C.: Haskell-Coloured Petri Nets. In: Koopman, P., Clack, C. (eds.) IFL 1999. LNCS, vol. 1868, pp. 165–180. Springer, Heidelberg (2000). https://doi.org/10.1007/10722298_10
Simon, M., Moldt, D.: About the development of a Curry-Coloured Petri net simulator. In: Lorenz, R., Bergenthum, R. (eds.) AWPN 2018, pp. 53–54 (2018). https://opus.bibliothek.uni-augsburg.de/opus4/41861
Simon, M.: Concept and implementation of distributed simulations in Renew. Bachelor thesis, University of Hamburg, Department of Informatics, March 2014
Simon, M.: Curry-Coloured Petri Nets: a concurrent simulator for Petri Nets with purely functional logic program inscriptions. Master thesis, University of Hamburg, Department of Informatics, April 2018
Wadler, P.: Comprehending monads. Math. Struct. Comput. Sci. 2(4), 461–493 (1992)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Simon, M., Moldt, D., Schmitz, D., Haustermann, M. (2019). Tools for Curry-Coloured Petri Nets. In: Donatelli, S., Haar, S. (eds) Application and Theory of Petri Nets and Concurrency. PETRI NETS 2019. Lecture Notes in Computer Science(), vol 11522. Springer, Cham. https://doi.org/10.1007/978-3-030-21571-2_7
Download citation
DOI: https://doi.org/10.1007/978-3-030-21571-2_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-21570-5
Online ISBN: 978-3-030-21571-2
eBook Packages: Computer ScienceComputer Science (R0)