Reaction Systems (RSs) are a successful computational framework inspired by biological systems. RSs can involve a large number of reactions and entities, which makes it difficult the debugging of quite long computations that traverses complex states. Slicing is a technique which is useful for simplifying a debugging process, by selecting a portion of the program containing the faulty code. We define the first dynamic slicer for RSs and show that it can help the user to detect the origins of bugs and also to inspect more closely the behavior of the model, highlighting the parts that need more investigation. Our slicer allows to select part of a (faulty) state and then eliminates from the computation the information which is not relevant for the selected items. We show how to use the slicer on some biological models in RSs. Our dynamic backward slicer is based on an SOS semantics of RSs. In order to automatize the slicing process we describe how to use monitors for identifying the states which violate a safety specification and hence are suitable to start the slicing. We have integrated our slicer in BioResolve, a prototype implementation in Prolog which provides also other features such as computations represented as colored graphs, and verification of properties.
Dynamic Slicing of Reaction Systems Based on Assertions and Monitors
Brodo L.
;Bruni R.
;Falaschi M.
2023-01-01
Abstract
Reaction Systems (RSs) are a successful computational framework inspired by biological systems. RSs can involve a large number of reactions and entities, which makes it difficult the debugging of quite long computations that traverses complex states. Slicing is a technique which is useful for simplifying a debugging process, by selecting a portion of the program containing the faulty code. We define the first dynamic slicer for RSs and show that it can help the user to detect the origins of bugs and also to inspect more closely the behavior of the model, highlighting the parts that need more investigation. Our slicer allows to select part of a (faulty) state and then eliminates from the computation the information which is not relevant for the selected items. We show how to use the slicer on some biological models in RSs. Our dynamic backward slicer is based on an SOS semantics of RSs. In order to automatize the slicing process we describe how to use monitors for identifying the states which violate a safety specification and hence are suitable to start the slicing. We have integrated our slicer in BioResolve, a prototype implementation in Prolog which provides also other features such as computations represented as colored graphs, and verification of properties.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.