1 | | = Tools for Curry-Coloured Petri Nets = |
2 | | |
3 | | The Curry-coloured Petri net formalism and its tool set provide the possibilities |
4 | | - to model CCPNs (Curry-coloured Petri nets) with [http://www.curry-language.org Curry] inscriptions in the [http://renew.de Renew] editor environment |
5 | | - to simulate CCPN models |
6 | | - to generate a reachability graph for CCPN models |
7 | | - to integrate the [https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn CCPN simulator] as a [https://www.haskell.org Haskell] library into Haskell programs |
8 | | While [https://www.haskell.org Haskell] is used as the implementations language, [http://www.curry-language.org Curry] is used as the inscription language. |
9 | | The main advantage is that CCPN inscriptions are side effect free due to the Curry's functional pureness and the control of side effects by its strong type system. |
10 | | Binding searches are based on the highly optimized Curry evaluation environment of the [https://www-ps.informatik.uni-kiel.de/kics2 KiCS2] compiler. |
11 | | |
12 | | '''Here we provide a download for reviewers: [http://www.informatik.uni-hamburg.de/TGI/moldt/renew2.6devbase.zip renew2.6devbase.zip]''' |
13 | | |
14 | | == Prerequisites == |
15 | | |
16 | | Installation for the CCPN tools is supported for Unix-like systems (macOS, Linux, BSD,...) and requires: |
17 | | |
18 | | - Java Runtime Environment in Version 9 or later |
19 | | - [https://git-scm.com/downloads Git] |
20 | | |
21 | | == Installation == |
22 | | |
23 | | The CCPN tool set requires two components, Renew with the CurryCPN and the !RefNetReachabilityGraph plugin, as well as the [https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn CCPN simulator] (includes the [https://www-ps.informatik.uni-kiel.de/kics2 KiCS2] Curry compiler). |
24 | | |
25 | | We have extensively tested the installation on macOS, but it also supports other Unix-like systems (Linux, BSD,...). Windows is currently not officially supported (see below). |
26 | | |
27 | | === Renew === |
28 | | |
29 | | This package contains a precompiled version of Renew and the required plugins. To generate the startup scripts for Renew run the `bin/unix/installrenew` script. |
30 | | |
31 | | === CCPN Simulator === |
32 | | |
33 | | The CCPN simulator has to be compiled manually. The setup script requires Git to clone the CCPN repository and its dependencies. The script uses the Haskell tool [https://haskellstack.org Stack] to download and compile all required Haskell libraries. Stack is automatically installed, if it is not already available. |
34 | | |
35 | | To compile the CCPN simulator and all its dependencies run: |
36 | | |
37 | | {{{ |
38 | | sh setup_ccpn.sh |
39 | | }}} |
40 | | |
41 | | This may take a while because it bootstraps the KiCS2 compiler. |
42 | | |
43 | | === On Windows === |
44 | | |
45 | | So far, we do not offer a working setup script for the CCPN simulator on Windows. |
46 | | The installation described above only works on Unix-like systems (macOS, Linux, BSD,...). |
47 | | The CCPN simulator installation depends on a lot of standard GNU commands that are very difficult to set up correctly in Windows. |
48 | | However, if the CCPN simulator installation succeeded, Renew can be set up in Windows by running `bin/win/installrenew.bat` and then started by running `bin/win/loadrenew`. |
49 | | |
50 | | == Usage == |
51 | | |
52 | | To start Renew with the CurryCPN plugin use the generated `bin/unix/loadrenew` script. |
53 | | |
54 | | You can find the example CCPN from the ''Tools for Curry-Coloured Petri Nets'' paper in `examples/word.rnw`. |
55 | | The other examples are from the master thesis. |
56 | | |
57 | | To select the CCPN simulation formalism click on the menu item ''Simulation -> Formalisms -> Curry Net Compiler''. |
58 | | Subsequently, you can start a concurrent CCPN simulation by ''Simulation -> Run Simulation''. |
59 | | Please note that the CCPN compilation occurs at the beginning of each new simulation and takes some time before the first marking is visualized. |
60 | | Alternatively, you can start a simulation and fire individual transitions by ''Simulation -> Simulation Step''. |
61 | | A running simulation is halted by ''Simulation -> Halt Simulation'' and any simulation is terminated by ''Simulation -> Terminate Simulation''. |
62 | | |
63 | | The colored reachability graph can be generated by ''Tools -> Curry Reachability Graph''. |
64 | | In the generated graph, a graphical representation of a marking is opened by double-clicking it. |
65 | | |
66 | | The `doc` directory contains the general Renew manual for version 2.5. This package contains version 2.6dev, so there are some small differences. Most noticeable is the requirement for Java 9 for this version of Renew. |
67 | | |
68 | | === As a Haskell Library === |
69 | | |
70 | | See the ''Usage Examples'' in the README of the CCPN simulator's [https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn/tree/master_thesis_examples master_thesis_examples branch]. They exceed the scope of the ''Tools for Curry-Coloured Petri Nets'' paper, but two of them are explained in the master thesis. |
71 | | |
72 | | == References for CCPN == |
73 | | |
74 | | - Michael Simon. Curry-Coloured Petri Nets: A concurrent simulator for Petri nets with purely functional logic program inscriptions. Master thesis, University of Hamburg, Department of Informatics, Vogt-Kölln Str. 30, D-22527 Hamburg, April 2018. |
75 | | - [https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn/wikis/uploads/4eac7bfc80b93071c7779d447c6ff58b/Master_Thesis_Michael_Simon__corrected_.pdf Corrected version] |
76 | | |
77 | | - Michael Simon and Daniel Moldt. About the development of a Curry-Coloured Petri net simulator. In Robert Lorenz and Johannes Metzger, editors, Algorithms and Tools for Petri Nets, Proceedings of the 21th Workshop AWPN 2018, Augsburg, Germany, number 2018-02 in Reports / Technische Berichte der Fakultät für Angewandte Informatik der Universität Augsburg, pages 53–54, 2018. |
78 | | |
79 | | - Michael Simon and Daniel Moldt. Tools for Curry-Coloured Petri Nets. Internal Report 10 pages. (Please contact the authors.) |
80 | | |
81 | | === Additional References === |
82 | | |
83 | | - Michael Simon. Concept and implementation of distributed simulations in Renew. Bachelor thesis, University of Hamburg, Department of Informatics, Vogt-Kölln Str. 30, D-22527 Hamburg, March 2014. |
84 | | - [https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn/wikis/uploads/ee8394aad2d78d1acb5f923b5d022f61/Bachelor_Thesis_Michael_Simon.pdf Official version] |
| 1 | [https://git.informatik.uni-hamburg.de/tgipublic/ccpn/ccpn/-/wikis/pn19 Tools for Curry-Coloured Petri Nets] |