Applying Compiler Techniques to Reachability Analysis of High-Level Models

Using a tool for high-level Petri nets as an example, this article shows how techniques familiar from compilers can make reachability analysers more powerful. Syntax transformations can be applied to extend the modelling language with convenient short-hand notations, such as universal and existential quantification and multi-set summation. The process of reachability analysis can be dramatically sped up by compiling models to executable machine code that performs all model-dependent tasks, such as computing the successors of a state. This work describes a code generator implementation and the way the generated code is linked with the reachability analyser code.