{'fraction_non_alphanumeric': 0.013530135301353014, 'fraction_numerical': 0.0, 'mean_word_length': 5.310077519379845, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Static slicing of reactive programs

We extend the well-known technique of program slicing to synchronous reactive programs like Esterel. Reactive programs are event-oriented and maintain continuous interaction with the environment. The traditional definition of slicing that preserves the values of a program variable at a particular program point is not natural for reactive programs. We have given a new notion of slicing that preserves the on going behaviour of a program with respect to one or more events. The classical definition of control dependency is inadequate for correctly capturing all the control dependencies in reactive programs. Two such dependencies are interference control dependency and time dependency. A slicing algorithm, based upon the proposed definition of slicing, is also presented.