Implementing Coloured Petri Nets Using a Functional Programming Language

  • Authors:
  • Lars Michael Kristensen;Søren Christensen

  • Affiliations:
  • Department of Computer Science, University of Aarhus, Aabogade 34, DK-8200 Aarhus N, Denmark. lmkristensen@daimi.au.dk;Department of Computer Science, University of Aarhus, Aabogade 34, DK-8200 Aarhus N, Denmark. schristensen@daimi.au.dk

  • Venue:
  • Higher-Order and Symbolic Computation
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Coloured Petri Nets (CPNs) are a graphically oriented modelling language for concurrent systems based on Petri Nets and the functional programming language Standard ML. Petri Nets provide the primitives for modelling concurrency and synchronisation. Standard ML provides the primitives for modelling data manipulation and for creating compact and parameterisable CPN models.Functional programming and Standard ML have played a major role in the development of CPNs and the CPN computer tools supporting modelling, simulation, verification, and performance analysis of concurrent systems. At the modelling language level, Standard ML has extended Petri Nets with the practical expressiveness required for modelling systems of the size and complexity found in typical industrial projects. At the implementation level, Standard ML has been used to implement the formal semantics of CPNs that provide the theoretical foundation of the CPN computer tools.This paper provides an overview of how functional programming and Standard ML are applied in the CPN modelling language and the supporting computer tools. We give a detailed presentation of the key algorithms and techniques used for implementing the formal semantics of CPNs, and we survey a number of case studies where CPNs have been used for the design and analysis of systems. We also demonstrate how the use of a Standard ML programming environment has allowed Petri Nets to be used for the implementation of systems.