3. Applications of program analysis techniques
An execution trajectory (ET) (also called an execution history) is a record of operations performed during program execution. ETs are used for a variety of applications including dynamic slicing and debugging of programs. ETs tend to contain voluminous information, hence the overhead of producing and analysing execution histories is considerable.
My research focuses on the use of program analysis techniques to record optimized execution histories which have significantly smaller sizes and analysis costs in applications like dynamic slicing and debugging of programs, including the very challenging field of debugging and exception handling in optimized programs. These techniques make use of notions from the generalized theory of data flow analysis to avoid recording redundant information in an ET.
Performance studies show that our execution histories are at least an order of magnitude smaller than complete execution histories in most cases; for some programs they are smaller by several orders of magnitude. These reductions provide many advantages: reduced memory requirements, reduced execution-time overhead of ET recording, and reduced overhead of ET analysis.