VLDB 2026 Research / reviewers in the wild / expert
William Landi
dblp:92/1701
· DBLP profile ↗
16ranked-venue papers
4as first author
0since 2021 · last 2003
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 15 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
13 papers |
Program analysis · 92% Programming languages and type systems · 3% Software maintenance and evolution · 2% | |
| Theoretical computer science
2 papers |
Computational complexity · 100% |
Topics — the 17 heaviest of 21, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
pointer analysis |
0.2 | 10 | 2001 | Complexity of Points-To Analysis of Java in the Presence of Exceptions · IEEE Trans. Software Eng. 2001 A schema for interprocedural modification side-effect analysis with pointer aliasing · ACM Trans. Program. Lang. Syst. 2001 Relevant Context Inference · POPL 1999 |
Program analysis › effect analysis
side-effect analysis |
0.1 | 4 | 2001 | A schema for interprocedural modification side-effect analysis with pointer aliasing · ACM Trans. Program. Lang. Syst. 2001 Comparing Flow and Context Sensitivity on the Modification-Side-Effects Problem · ISSTA 1998 Incremental Analysis of Side Effects for C Software System · ICSE 1997 |
Program analysis
data flow analysis |
0.1 | 4 | 1999 | Relevant Context Inference · POPL 1999 Comparing Flow and Context Sensitivity on the Modification-Side-Effects Problem · ISSTA 1998 Interprocedural Def-Use Associations for C Systems with Single Level Pointers · IEEE Trans. Software Eng. 1994 |
Program analysis › static analysis
interprocedural analysis |
0.1 | 5 | 2001 | A schema for interprocedural modification side-effect analysis with pointer aliasing · ACM Trans. Program. Lang. Syst. 2001 Interprocedural Side Effect Analysis With Pointer Aliasing · PLDI 1993 A Safe Approximate Algorithm for Interprocedural Pointer Aliasing · PLDI 1992 |
Program analysis
static analysis |
0.0 | 2 | 2001 | Complexity of Points-To Analysis of Java in the Presence of Exceptions · IEEE Trans. Software Eng. 2001 Program Decomposition for Pointer Aliasing: A Step Toward Practical Analyses · SIGSOFT FSE 1996 |
Program analysis › static analysis
incremental analysis |
0.0 | 2 | 1999 | An Incremental Flow- and Context-Sensitive Pointer Aliasing Analysis · ICSE 1999 Incremental Analysis of Side Effects for C Software System · ICSE 1997 |
Computational complexity › complexity of reasoning
complexity of program analysis |
0.0 | 1 | 2001 | Complexity of Points-To Analysis of Java in the Presence of Exceptions · IEEE Trans. Software Eng. 2001 |
Program analysis › data flow analysis
context-sensitive dataflow analysis |
0.0 | 1 | 1999 | Relevant Context Inference · POPL 1999 |
Program analysis › data flow analysis
flow-sensitive analysis |
0.0 | 2 | 1999 | Program Decomposition for Pointer Aliasing: A Step Toward Practical Analyses · SIGSOFT FSE 1996 An Incremental Flow- and Context-Sensitive Pointer Aliasing Analysis · ICSE 1999 |
Program analysis › flow analysis
flow-insensitive analysis |
0.0 | 1 | 1996 | Program Decomposition for Pointer Aliasing: A Step Toward Practical Analyses · SIGSOFT FSE 1996 |
Programming languages and type systems › control structures
exception handling |
0.0 | 1 | 2001 | Complexity of Points-To Analysis of Java in the Presence of Exceptions · IEEE Trans. Software Eng. 2001 |
Program analysis › static analysis › pointer analysis
aliasing analysis |
0.0 | 1 | 1991 | Pointer-Induced Aliasing: A Problem Classification · POPL 1991 |
Program analysis › static analysis
modular analysis |
0.0 | 1 | 1999 | Relevant Context Inference · POPL 1999 |
Programming languages and type systems › object-oriented programming
object-oriented languages |
0.0 | 1 | 1999 | Relevant Context Inference · POPL 1999 |
Program analysis › data flow analysis
incremental data flow analysis |
0.0 | 1 | 1990 | Profiling an Incremental Data Flow Analysis Algorithm · IEEE Trans. Software Eng. 1990 |
Compilers and program optimization
compiler analysis |
0.0 | 1 | 1996 | Program Decomposition for Pointer Aliasing: A Step Toward Practical Analyses · SIGSOFT FSE 1996 |
Software maintenance and evolution › software evolution
evolving systems |
0.0 | 1 | 1990 | Profiling an Incremental Data Flow Analysis Algorithm · IEEE Trans. Software Eng. 1990 |
Methods — techniques the papers use, named apart from their topics
side-effect propagation · 0.0alias analysis · 0.0incremental algorithm · 0.0flow-sensitive analysis · 0.0context-sensitive analysis · 0.0empirical comparison · 0.0hybrid method · 0.0side-effect analysis · 0.0program decomposition · 0.0def-use analysis · 0.0interprocedural analysis · 0.0complexity classification · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2003 | Secure De-identification and Re-identification
William Landi, R. Bharat Rao |
AMIA | 1 |
| 2001 | A schema for interprocedural modification side-effect analysis with pointer aliasingabstractThe first interprocedural modification side-effects analysis for C (MOD C ) 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 C algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These MOD C algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar MOD C algorithms: MOD C ( FSAlias ) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; MOD C ( FIAlias uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This first comparative implementation of MOD C analyses offers insight into the differences between flow-/context-sensitive and flow-/context-insensitive analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average MOD C ( FSAlias ) for procedures and calls is in the range of 20% more precise than MOD C ( FIAlias ); however, the performance was found to be at least an order of magnitude slower than MOD C ( FIAlias ). Barbara G. Ryder, William Landi, Phil Stocks, Sean Zhang, Rita Z. Altucher |
ACM Trans. Program. Lang. Syst. | 2 |
| 2001 | Complexity of Points-To Analysis of Java in the Presence of ExceptionsabstractAt each program point, points-to analysis for statically typed object oriented programming languages (e.g., Java, C++) determines those objects to which a reference may refer (or a pointer may point) during execution. Points-to analysis is necessary for any semantics based software tools for object oriented systems. Our new complexity results for points-to analysis distinguish the difficulty of intraprocedural and interprocedural points-to analyses for languages with combinations of single-level types (i.e., types with data members only of primitive type), exceptions with or without subtyping, and dynamic dispatch. Our results include: 1) the first polynomial-time algorithm for points-to analysis in the presence of exceptions that handles a robust subset of Java without threads and can be applied to C++; 2) proof that the above algorithm is safe, in general, and provably precise on programs with single-level types and exceptions without subtyping, but not dynamic dispatch, thus, this case is in P; 3) proof that an interprocedural points-to analysis problem with single-level types and exceptions with subtyping, but without dynamic dispatch, is PSPACE-hard, while the intraprocedural problem is PSPACE-complete. Other complexity characterizations of points-to analysis in programs without exceptions are presented, including an algorithm with worst-case bound of O(n/sup 5/), which improves over the O(n/sup 7/) worst-case bound achievable from previous approaches of T. Reps et al. (1995) and W.A. Landi and B.G. Ryder (1991). Ramkrishna Chatterjee, Barbara G. Ryder, William Landi |
IEEE Trans. Software Eng. | 3 |
| 1999 | An Incremental Flow- and Context-Sensitive Pointer Aliasing AnalysisabstractPointer aliasing analysis is used to determine if two object names containing dereferences and/or field selectors, (e.g., *p,q->t), may refer to the same location during execution.Such information is necessary for applications such as dataflow-based testers, program understanding tools, and debuggers, but is expensive to calculate with acceptable precision.Incremental algorithms update data flow information after a program change rather than recomputing it from scratch, under the assumption that the change impact will be limited.Two versions of a practical incremental pointer aliaaing algorithm have been developed, based on Land&Ryder flow-and context-sensitive alias analysis.Empirical results attest to the time savings over exhaustive analysis (a six-fold speedup on average), and the precision of the approximate solution obtained (on average same solution as exhaustive algorithm for 75% of the tests.) Jyh-Shiarn Yur, Barbara G. Ryder, William Landi |
ICSE | 3 |
| 1999 | Relevant Context InferenceabstractRelevant context inference (RCI) is a modular technique for flow- and context-sensitive data-flow analysis of statically typed object-oriented programming languages such as C++ and Java. RCI can be used to analyze complete programs as well as incomplete programs such as libraries; this approach does not require that the entire program be memory-resident during the analysis. RCI is presented in the context of points-to analysis for a realistic subset of C++. The empirical evidence obtained from a prototype implementation argues the effectiveness of RCI. Ramkrishna Chatterjee, Barbara G. Ryder, William Landi |
POPL | 3 |
| 1998 | Complexity of Concrete Type-Inference in the Presence of Exceptions
Ramkrishna Chatterjee, Barbara G. Ryder, William Landi |
ESOP | 3 |
| 1998 | Comparing Flow and Context Sensitivity on the Modification-Side-Effects ProblemabstractPrecision and scalability are two desirable, yet often conflicting, features of data-flow analyses. This paper reports on a case study of the modification---ide-effects problem for C in the presence of pointers from the perspective of contrasting the flow and context sensitivity of the solution procedure with respect to precision and scalability. The results show that the cost of precision of flow- and context-sensitive analysis is not always prohibitive, and that the precision of flow- and context-insensitive analysis is substantially better than worst-case estimates and can be sufficient for certain applications. Program characteristics that affect the performance of data-flow analysis are identified. Phil Stocks, Barbara G. Ryder, William Landi, Sean Zhang |
ISSTA | 3 |
| 1998 | Experiments with Combined Analysis for Pointer AliasingabstractWe present initial empirical experiments with combined analysis, a scalabk analysis technique that uses a program decomposition to apply different aliasing algorithms to independent program segments. The effectiveness of the solution strategy is validated through application to side-effect and reference analysis of C programs. Sean Zhang, Barbara G. Ryder, William Landi |
PASTE | 3 |
| 1997 | Incremental Analysis of Side Effects for C Software SystemabstractIncremental static analysis seeks to efficiently update semantic information about an evolving software system, without recomputing “from scratch.” Interprocedural modification side effect analysis (MOD) calculates the set of variables possibly modified by execution of a procedure or a statement. We introduce a partial incrementalization of MOD for C systems using the hybrid method and present results of a study of 27 C programs, that predicts that our incremental MOD analysis will be substantially cheaper than exhaustive analysis for many program changes. Jyh-Shiarn Yur, Barbara G. Ryder, William Landi, Phil Stocks |
ICSE | 3 |
| 1996 | Program Decomposition for Pointer Aliasing: A Step Toward Practical AnalysesabstractPointer aliasing analysis is crucial to compile-time analyses for languages with general-purpose pointer usage (such as C), but many aliasing methods have proven quite costly. We present a technique that partitions the statements of a program to allow separate, and therefore possibly different, pointer aliasing analysis methods to be used on independent parts of the program. This decomposition enables exploration of tradeoff between algorithm efficiency and precision. We also present a new, efficient flow-insensitive pointer aliasing algorithm, which is used together with an existing flow-sensitive aliasing algorithm in our experiments. We demonstrate our technique in the context of determining side effects and variable fetches through names containing pointer dereferences (Thru-deref MOD/REF). Initial empirical results using a combination of a flow-sensitive and a flow-insensitive aliasing analysis on the same program, demonstrate that the resulting analysis is much faster than solely using the flow-sensitive method, and obtains similar precision for the Thru-deref MOD/REF problems. Sean Zhang, Barbara G. Ryder, William Landi |
SIGSOFT FSE | 3 |
| 1995 | An Extended Form of Must Alias Analysis for Dynamic AllocationabstractThe paper presents methods that we have implemented to improve the quality of the def-uses reported for dynamically allocated locations. The methods presented are based on the Ruggieri/Murtagh naming scheme for dynamically created locations. We expand upon this scheme to name dynamically allocated locations for some user written allocation routines. Using this expanded naming scheme, we introduce an inexpensive, non-iterative, and localized calculation of extended must alias analysis to handle dynamically allocated locations, and show how this information can be used to improve def-use information. This is the first attempt to specify must alias information for names which represent a set of dynamically allocated locations. Empirical results are presented to illustrate the usefulness of our method. We consider this work a step towards developing practical re-engineering tools for C. Rita Z. Altucher, William Landi |
POPL | 2 |
| 1994 | Interprocedural Def-Use Associations for C Systems with Single Level PointersabstractDef-use analysis links possible value-setting statements for a variable (i.e. definitions) to potential value-fetches (i.e. uses) of that value. This paper describes the first algorithm that calculates accurate interprocedural def-use associations in C software systems. Our algorithm accounts for program-point-specific pointer-induced aliases, though it is currently limited to programs using a single level of indirection. We prove the NP-hardness of the interprocedural reaching definitions problem and describe the approximations made by our polynomial-time algorithm. Initial empirical results are also presented.> Hemant D. Pande, William Landi, Barbara G. Ryder |
IEEE Trans. Software Eng. | 2 |
| 1993 | Interprocedural Side Effect Analysis With Pointer AliasingabstractWe present a new interprocedural modification side effects algorithm for C programs, that can discern side effects through general-purpose pointer usage. Ours is the first complete design and implementation of such an algorithm. Preliminary performance findings support the practicality of the technique, which is based on our previous approximation algorithm for pointer aliases [LR92]. Each indirect store through a pointer variable is found, on average, to correspond to a store into 1.2 locations. This indicates that our program-point-specific pointer aliasing information is quite precise when used to determine the effects of these stores. William Landi, Barbara G. Ryder, Sean Zhang |
PLDI | 1 |
| 1992 | A Safe Approximate Algorithm for Interprocedural Pointer AliasingabstractDuring execution, when two or more names exist for the same location at some program point, we call them aliases. In a language which allows arbitrary pointers, the problem of determining aliases at a program point is ρ-space-hard [Lan92]. We present an algorithm for the Conditional May Alias problem, which can be used to safely approximate Interprocedural May Alias in the presence of pointers. This algorithm is as precise as possible in the worst case and has been implemented in a prototype analysis tool for C programs. Preliminary speed and precision results are presented. William Landi, Barbara G. Ryder |
PLDI | 1 |
| 1991 | Pointer-Induced Aliasing: A Problem ClassificationabstractA?iasing occurs at some program point during execution when two or more names exist for the same location. We have isolated various programming language mechanisms which create aliases. We have classified the complexity of the fllas problem induced by each mechanism alone and in combination, as AfP-hard, complement tip-hard, or polynomial (’P). We present our problem classification, give an overview of our proof that finding interprocedural aliases in the presence of single level pointers is in 7, and present a represent tive proof for the NP-hard problems. William Landi, Barbara G. Ryder |
POPL | 1 |
| 1990 | Profiling an Incremental Data Flow Analysis AlgorithmabstractIncremental data flow analysis algorithms have been designed to deal efficiently with change in evolving software systems. These algorithms document the current state of a software system by incorporating change effects into previously derived information describing the definition and use of data in the system. Unfortunately, the performance of these algorithms cannot, in general, be characterized by analytic predictions of their expected behavior. It is possible, however, to observe their performance empirically and predict their average behavior. The authors report on experiments on the empirical profiling of a general-purpose, incremental data flow analysis algorithm. The algorithm, dominator based and coded in C, was applied to statistically significant numbers of feasible, random software systems of moderate size. The experimental results, with quantifiable confidence limits, substantiate the claim that incremental analyses are viable and grow more valuable as a software system grows in size.> Barbara G. Ryder, William Landi, Hemant D. Pande |
IEEE Trans. Software Eng. | 2 |