7 research outputs found
Nested-unit Petri nets
International audiencePetri nets can express concurrency and nondeterminism but neither locality nor hierarchy. This article presents an extension of Petri nets, in which places can be grouped into so-called "units" expressing sequential components. Units can be recursively nested to reflect both the concurrent and hierarchical nature of complex systems. This model called NUPN (Nested-Unit Petri Nets) was originally developed for translating process calculi to Petri nets, but later found also useful beyond this setting. It allows significant savings in the memory representation of markings for both explicit-state and symbolic verification. Thirteen software tools already implement the NUPN model, which has also been adopted for the benchmarks of the Model Checking Contest (MCC) and the parallel problems of the Rigorous Examination of Reactive Systems (RERS) challenges
Recommended from our members
An algebra of high level petri nets
PhD ThesisPetri nets were introduced by C.A. Petri as a theoretical model of concurrency in which the causal
relationship between actions, rather than just their temporal ordering, can be represented. As
a theoretical model of concurrency, Petri nets have been widely successful. Moreover, Petri nets
are popular with practitioners, providing practical tools for the designer and developer of real
concurrent and distributed systems.
However, it is from this second context that perhaps the most widely voiced criticism of Petri
nets comes. It is that Petri nets lack any algebraic structure or modularity, and this results in
large, unstructured models of real systems, which are consequently often intractable. Although
this is not a criticism of Petri nets per se, but rather of the uses to which Petri nets are put, the
criticism is well taken.
We attempt to answer this criticism in this work. To do this we return to the view of Petri nets
as a model of concurrency and consider how other models of concurrency counter this objection.
The foremost examples are then the synchronisation trees of Milner, and the traces of Hoare,
(against which such criticism is rarely, if ever, levelled). The difference between the models is
clear, and is to be found in the richness of the algebraic characterisations which have been made
for synchronisation trees in Milner's Calculus of Communicating Systems (CCS), and for traces
in Hoare's Communicating Sequential Processes (CSP).
With this in mind we define, in this thesis, a class of high level Petri nets, High Level Petri Boxes,
and provide for them a very general algebraic description language, the High Level Petri Box
Algebra, with novel ideas for synchronisation, and including both refinement and recursion among
its operators. We also begin on the (probably open-ended task of the) algebraic characterisation
of High Level Petri Boxes.
The major contribution of this thesis is a full behavioural characterisation of the High Level Petri
Boxes which form the semantic domain of the algebra. Other contributions are: a very general
method of describing communication protocols which extend the synchronisation algebras of
Winskel; a recursive operator that preserves finiteness of state (the best possible, given the
generality of the algebra); a refinement operator that is syntactic in nature, and for which the
recursive construct is a behavioural fix-point; and a notion of behavioural equivalence which is
a congruence with respect to a major part of the High Level Petri Box Algebra
Analysis Techniques for Concurrent Programming Languages
Los lenguajes concurrentes est an cada d a m as presentes en nuestra sociedad,
tanto en las nuevas tecnolog as como en los sistemas utilizados de manera cotidiana. M as a un, dada la actual distribuci on de los sistemas y su arquitectura interna,
cabe esperar que este hecho siga siendo una realidad en los pr oximos a~nos. En
este contexto, el desarrollo de herramientas de apoyo al desarrollo de programas
concurrentes se vuelve esencial. Adem as, el comportamiento de los sistemas concurrentes es especialmente dif cil de analizar, por lo que cualquier herramienta que
ayude en esta tarea, a un cuando sea limitada, ser a de gran utilidad. Por ejemplo, podemos encontrar herramientas para la depuraci on, an alisis, comprobaci on,
optimizaci on, o simpli caci on de programas. Muchas de ellas son ampliamente
utilizadas por los programadores hoy en d a.
El prop osito de esta tesis es introducir, a trav es de diferentes lenguajes de
programaci on concurrentes, t ecnicas de an alisis que puedan ayudar a mejorar la
experiencia del desarrollo y publicaci on de software para modelos concurrentes.
En esta tesis se introducen tanto an alisis est aticos (aproximando todas las posibles ejecuciones) como din amicos (considerando una ejecuci on en concreto). Los
trabajos aqu propuestos di eren lo su ciente entre s para constituir ideas totalmente independientes, pero manteniendo un nexo com un: el hecho de ser un
an alisis para un lenguaje concurrente. Todos los an alisis presentados han sido
de nidos formalmente y se ha probado su correcci on, asegurando que los resultados obtenidos tendr an el grado de abilidad necesario en sistemas que lo requieran,
como por ejemplo, en sistemas cr ticos. Adem as, se incluye la descripci on de las
herramientas software que implementan las diferentes ideas propuestas. Esto le da
al trabajo una utilidad m as all a del marco te orico, permitiendo poner en pr actica
y probar con ejemplos reales los diferentes an alisis.
Todas las ideas aqu presentadas constituyen, por s mismas, propuestas aplicables en multitud de contextos y problemas actuales. Adem as, individualmente sirven de punto de partida para otros an alisis derivados, as como para la adaptaci on
a otros lenguajes de la misma familia. Esto le da un valor a~nadido a este trabajo,
como bien atestiguan algunos trabajos posteriores que ya se est an bene ciando de
los resultados obtenidos en esta tesis.Concurrent languages are increasingly present in our society, both in new
technologies and in the systems used on a daily basis. Moreover, given the
current systems distribution and their internal architecture, one can expect
that this remains so in the coming years. In this context, the development of
tools to support the implementation of concurrent programs becomes essential.
Futhermore, the behavior of concurrent systems is particularly difficult
to analyse, so that any tool that helps in this task, even if in a limited way,
will be very useful. For example, one can find tools for debugging, analysis,
testing, optimisation, or simplification of programs, which are widely used
by programmers nowadays.
The purpose of this thesis is to introduce, through various concurrent programming
languages, some analysis techniques that can help to improve the
experience of the software development and release for concurrent models.
This thesis introduces both static (approximating all possible executions) and
dynamic (considering a specific execution) analysis. The topics considered
here differ enough from each other to be fully independent. Nevertheless,
they have a common link: they can be used to analyse properties of a concurrent
programming language. All the analyses presented here have been
formally defined and their correctness have been proved, ensuring that the
results will have the reliability degree which is needed for some systems (for
instance, for critical systems). It also includes a description of the software
tools that implement the different ideas proposed. This gives the work a usefulness
well beyond the theoretical aspect, allowing us to put it in practice
and to test the different analyses with real-world examples All the ideas here presented are, by themselves, approaches that can be applied
in many current contexts and problems. Moreover, individually they
serve as a starting point for other derived analysis, as well as for the adaptation
to other languages of the same family. This gives an added value to
this work, a fact confirmed by some later works that are already benefiting
from the results obtained in this thesis.Tamarit Muñoz, S. (2013). Analysis Techniques for Concurrent Programming Languages [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/31651TESI