Implementation of LMNtal Model Checkers: a Metaprogramming Approach
LMNtal is a modeling language based on hierarchical graph rewriting, and its implementation SLIM features an LTL model checker. There is some research on extensions of SLIM, and all of them achieve their functionalities by modifying SLIM. If a model checker is implemented in the modeling language itself, it should be very easy to develop prototypes of various model checkers without changing the implementation of the model checker. This approach is called metaprogramming which has been taken conventionally in Lisp and Prolog. In this paper, we define first-class rewriting rules to enable a metaprogramming in LMNtal. In addition to that, we design APIs to operate states of LMNtal programs. These features allow us to implement diverse variants of a model checker without changing SLIM. We implemented an LTL model checker and a CTL model checker in LMNtal. As a result, our framework is sufficient to develop a metainterpreter which treats program states flexibly.
Paper (meta16-final5.pdf) | 239KiB |
Sun 30 Oct Times are displayed in time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
08:30 - 10:00: Model Checking and TransformationMETA at Matterhorn 3 Chair(s): Ralf LaemmelUniversity of Koblenz-Landau, Germany | |||
08:30 - 09:00 Talk | Evolution of Metaprograms: XSLT as a Metaprogramming Language META Vadim ZaytsevRaincode, Belgium Media Attached File Attached | ||
09:00 - 09:30 Talk | Coloured Petri-Nets Framework for Simulating Method Invocations on Context-Oriented Software META Harumi WatanabeTokai University, Ikuta TanigawaKyusyu University, Nobuhiko OguraTokyo City University, Midori SugayaShibaura Institute of Technology, Kenji HisazumiKyushu University, Akira FukudaKyushu University File Attached | ||
09:30 - 10:00 Talk | Implementation of LMNtal Model Checkers: a Metaprogramming Approach META Media Attached File Attached |