Slicing Synchronous Reactive Programs

This paper extends the well-known technique of slicing to synchronous reactive programs. Synchronous languages exemplified by Esterel, Lustre, Signal and Argos, employ a novel model of execution that is found useful for abstract and high level description of complex controllers. Slicing is well known in the domain of sequential transformational programs and has been found to be useful in analysis, debugging and verification. The classical definition of slicing is inadequate for reactive programs. In this paper, we propose a new definition of slicing for reactive programs. An algorithm for computing slices based upon this definition is developed. We have taken the Argos language for concrete description of our ideas; they are of general applicability and can be applied easily to other synchronous languages.

[1]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[2]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[3]  S. Ramesh,et al.  Refinement and Efficient Verification of Synchronous Programs (Extended Abstract)1 , 2000 .

[4]  Masahiro Fujita,et al.  Program Slicing of Hardware Description Languages , 1999, CHARME.

[5]  Doron Drusinsky,et al.  Using statecharts for hardware description and synthesis , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[6]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .

[7]  S. Ramesh Efficient translation of statecharts to hardware circuits , 1999, Proceedings Twelfth International Conference on VLSI Design. (Cat. No.PR00013).

[8]  Orna Grumberg,et al.  Model checking and modular verification , 1991, TOPL.

[9]  Lynette I. Millett,et al.  Slicing Promela and its Applications to Model Checking, Simulation, and Protocol Understanding , 2002 .

[10]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[11]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[12]  J. C. Ebergen VLSI design , 1992, IEEE Des. Test Comput..

[13]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[14]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[15]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[16]  S. Ramesh Communicating Reactive State Machines: Design, Model and Implementation , 1998 .

[17]  Mangala Gowri Nanda,et al.  Slicing concurrent programs , 2000, ISSTA '00.

[18]  Jens Krinke,et al.  Static slicing of threaded programs , 1998, PASTE '98.