Learn More
During execution, when two or more names exist for the same location at some program point, we call them <italic>aliases</italic>. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is &rgr;-space-hard [Lan92]. We present an algorithm for the Conditional May Alias problem, which can be used to safely(More)
We present the first high-precision algorithm for obtaining DefUse Associations in C programs with single level pointers. While the precise solution of the problem is lVP-hani, our polynomial-time algorithm uses program-point-specific pointer-induced aliases to obtain good approximations to the set of definitions reaching a program point. This information(More)
Static analysis of programs is indispensable to any software tool, environment, or system that requires compile-time information about the semantics of programs. With the emergence of languages like C and LISP, static analysis of programs with dynamic storage and recursive data structures has become a field of active research. Such analysis is difficult,(More)
Traditional interprocedural data-flow analysis is performed on whole programs; however, such <italic>whole-program analysis</italic> is not feasible for large or incomplete programs. We propose <italic>fragment data-flow analysis</italic> as an alternative approach which computes data-flow information for a specific program fragment. The analysis is(More)
Concrete type-inference for statically typed object-oriented programming languages (e.g., Java, C ++) determines at each program point, those objects to which a reference may refer or a pointer may point during execution. A precise compile-time solution for this problem requires a ow-sensitive analysis. Our new complexity results for concrete type-inference(More)
The program dependence graph and its use in optimization. Experiment on the automatic detection of function clones in a software system using metrics. 38 sions at this point. Nevertheless, the initial feedback from the individuals involved in the maintenance is extremely positive. The results were recognized as correct and useful. Important information on(More)
The first interprocedural modification side-effects analysis for C (MOD<subscrpt><italic>C</italic></subscrpt>) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of MOD<subscrpt><italic>C</italic></subscrpt>(More)