Issues in slicing PROMELA and its applications to model checking, protocol understanding, and simulation
A program slice consists of the parts of a program that may affect or are affected by the value being computed at the point of interest. Recent work in slicing concurrent programs examines how synchronization, communication, and non-determinism (along with traditional control and data dependence) affect values at certain program points. We are extending this work to slice the Promela programming language, used to specify protocols for the Spin model checker. An application of slicing may be its usefulness in paring down protocol descriptions to just the pieces that affect particular points of interest. Model checking and simulation of the pared-down protocol may, in some cases, be much more efficient. We present program slicing as a tool that, along with model checking and simulation techniques, can facilitate understanding and debugging of protocols.
Unable to display preview. Download preview PDF.