A Tool For Slicing Esterel Programs
Esterel programming language is widely used in designing the reactive systems. Reactive systems are event driven. They respond to the signals by generating output signals. Reactive systems must be verified before they are employed into the system, because the volume of casualties may be enormous in case they fail to respond to the events. Slicer for the Esterel programs can be useful in verification process of Reactive systems.
In this report we will try to understand the design of Esterel Slicer, implemented by aditya. Esterel Slicer is implemented in C++, making extensive use of features like classes, inheritance, polymorphism, and Standard Template Library(STL). It also uses LEX and YACC utilities to build the front end parser. It takes Esterel program and slicing criterion as input and produces slice program as output. It also produces dotty files to view the Control Flow Graph(CFG) and Program Dependence Graph(PDG) of input program.
The present slicer program takes the control point and the signal name as slicing criterion. In reactive systems, we are interested in the behavior of the signal, so slicing criterion should be only output signal. We want to modify the slicing algorithm, so that it will take only signal name as slicing criterion and traverse backward from all the nodes having emit or sustain statement of that signal name. In the present slicer, implemented by Aditya, Esterel grammar is not complete. We will implement the entire grammar and build a GUI for slicer.

Related Papers
R. Kulkarni and S. Ramesh, Static Slicing of Reactive Programs, Proc. of IEEE International Conference on Source Code Analysis and Manipulation, SCAM 2003, IEEE Press.[ps]