Reaching definitions are used in debugging, testing, program understanding and impact analysis. Interprocedural reaching definitions computation is difficult because the different invocation contexts of each procedure have not to be mixed, in order to produce accurate results. We propose a modular reaching definitions algorithm which exploits the structure of the call graph to determine an effective computation order. This algorithm avoids repeating fixpoint computation inside each procedure for every different calling context, but still remains context sensitive. It also enjoys some interesting properties related to modularity, incrementality and subsystem analysis. Experimental results provide evidence of good execution time performance and scalability
Modular Reaching Definitions Analysis
Tonella, Paolo;
1997-01-01
Abstract
Reaching definitions are used in debugging, testing, program understanding and impact analysis. Interprocedural reaching definitions computation is difficult because the different invocation contexts of each procedure have not to be mixed, in order to produce accurate results. We propose a modular reaching definitions algorithm which exploits the structure of the call graph to determine an effective computation order. This algorithm avoids repeating fixpoint computation inside each procedure for every different calling context, but still remains context sensitive. It also enjoys some interesting properties related to modularity, incrementality and subsystem analysis. Experimental results provide evidence of good execution time performance and scalabilityI documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.