Colored Petri Nets (CPNs) are a high-level form of Petri Nets, in which transition inscriptions in some programming language operate on individual tokens, i.e., tokens attributed with values of the inscription language. Petri Nets have been known to combine well with functional inscription languages, but complex or even proprietary implementations have so far been obstacles to more widespread use. We show that such functional CPNs can have straightforward embeddings into their functional inscription languages.

As a concrete example, we introduce the variant of Haskell-Colored Petri Nets (HCPNs) and show that they have a simple mapping to Haskell. HCPNs are thus readily available for system modeling, possibly in preparation of system implementation in Haskell, following a process of stepwise refinement in which all intermediate specifications are executable Haskell programs. Similar mappings can be used to introduce functional Petri Nets as graphical specification languages on top of other functional languages.


Functional Language Place Type Input Place Output Place Input Token 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    World of Petri Nets: Homepage of the International Petri Net Community (1999),
  2. 2.
    Aßmann, C.: Performance Results for an Implementation of the Process Coordination Language K2. In: Hammond, K., Davie, T., Clack, C. (eds.) IFL 1998. LNCS, vol. 1595, pp. 1–19. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  3. 3.
    CPN group at the University of Aarhus in Denmark. Design/CPN – Computer Tool for Coloured Petri Nets (1999),
  4. 4.
    Hielscher, W., Urbszat, L., Reinke, C., Kluge, W.: On Modelling Train Traffic in a Model Train System. In: Proceedings of the Workshop and Tutorial on Practical Use of Coloured Petri Nets and Design/CPN, Aarhus, Denmark. Technical Report PB-532, Department of Computer Science, University of Aarhus (June 1998)Google Scholar
  5. 5.
    Jensen, K.: Coloured Petri Nets. Basic Concepts, Analysis Methods and Practical Use. Springer, Heidelberg (1997) (Three Volumes)Google Scholar
  6. 6.
    Jensen, K.: Recommended Books and Papers on Coloured Petri Nets(1999); Includes links to online articles covering introductions, theory, and practice,
  7. 7.
    Jones, M.P.: A prototype implementation of extensible records for Hugs. Part of the documentation for Hugs (March 1997),
  8. 8.
    Jones, S.P., Hughes, J., Augustsson, L., Barton, D., Boutel, B., Burton, W., Fasel, J., Hammond, K., Hinze, R., Hudak, P., Johnsson, T., Jones, M., Launchbury, J., Meijer, E., Peterson, J., Reid, A., Runciman, C., Wadler, P.: Haskell 98: A Nonstrict, Purely Functional Language. Technical report (February 1999), Available at
  9. 9.
    Kluge, W.E.: A User’s Guide for the Reduction System π-RED+. Technical Report 9419, Institute of Computer Science and Applied Mathematics, Christian- Albrechts-University, Kiel (December 1994)Google Scholar
  10. 10.
    Petri, C.A.: Kommunikation mit Automaten. PhD thesis, Bonn: Institut für Instrumentelle Mathematik, Schriften des IIM Nr. 2, Second Edition: New York: Griffiss Air Force Base, Technical Report RADC-TR-65-377, Vol.1, Pages: Suppl. 1, English translation (1962)Google Scholar
  11. 11.
    Reisig, W.: Petri Nets, An Introduction. EATCS, Monographs on Theoretical Computer Science. Springer, Heidelberg (1995)Google Scholar
  12. 12.
    Schepers, J.: Using Functional Languages for Process Specifications. In: Glaser, H., Hartel, P. (eds.) 3rd International Workshop on the Parallel Implementation of Functional Languages, Southampton, UK, June 5-7, pp. 89–102 (1991); Technical Report CSTR 91-07, University of SouthamptonGoogle Scholar
  13. 13.
    Stoye, W.: Message-Based Functional Operating Systems. Science of Computer Programming 6, 291–311 (1986)zbMATHCrossRefGoogle Scholar
  14. 14.
    Theoretical Foundations Group, Department for Informatics, University of Hamburg. Renew — The Reference Net Workshop (1999),
  15. 15.
    Turner, D.: Functional Programming and Communicating Processes. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds.) PARLE 1987. LNCS, vol. 259. Springer, Heidelberg (1987)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Claus Reinke
    • 1
  1. 1.Languages and Programming Group, School of Computer Science and Information TechnologyUniversity of NottinghamNottinghamUK

Personalised recommendations