Higher-Order and Symbolic Computation, 17(3)207-243
Implementing Coloured Petri Nets Using a Functional Programming Language
Lars Michael Kristensen, Department of Computer Science, University of Aarhus, Aabogade 34, DK-8200 Aarhus N, Denmark
Søren Christensen, Department of Computer Science, University of Aarhus, Aabogade 34, DK-8200 Aarhus N, Denmark
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.
Keywords: distributed and concurrent computation,
implementation techniques, programming environments and tools,
Coloured Petri Nets, high-level Petri Nets, Petri Nets
|
This article can be downloaded [here].
|
|