Demo Data from VLDB 2026 / reviewers in the wild / expert
Greg DeFouw
dblp:28/4762
· DBLP profile ↗
3ranked-venue papers
1as first author
0since 2021 · last 1998
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 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
3 papers |
Program analysis · 81% Compilers and program optimization · 15% Programming languages and type systems · 4% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Performance modeling and evaluation · 100% |
Topics — the 8 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis
interprocedural analysis |
0.0 | 2 | 1998 | Fast Interprocedural Class Analysis · POPL 1998 Call Graph Construction in Object-Oriented Languages · OOPSLA 1997 |
Program analysis › type-based analysis
class analysis |
0.0 | 1 | 1998 | Fast Interprocedural Class Analysis · POPL 1998 |
Program analysis › static analysis
pointer analysis |
0.0 | 1 | 1998 | Fast Interprocedural Class Analysis · POPL 1998 |
Program analysis › static analysis › constraint-based analysis
unification-based analysis |
0.0 | 1 | 1998 | Fast Interprocedural Class Analysis · POPL 1998 |
Program analysis › static analysis
call graph construction |
0.0 | 1 | 1997 | Call Graph Construction in Object-Oriented Languages · OOPSLA 1997 |
Compilers and program optimization
optimizing compiler |
0.0 | 1 | 1998 | Fast Interprocedural Class Analysis · POPL 1998 |
Programming languages and type systems › object-oriented programming
object-oriented languages |
0.0 | 1 | 1997 | Call Graph Construction in Object-Oriented Languages · OOPSLA 1997 |
Performance modeling and evaluation › benchmarking › benchmark suite analysis
benchmark characterization |
0.0 | 1 | 1996 | Vortex: An Optimizing Compiler for Object-Oriented Languages · OOPSLA 1996 |
Methods — techniques the papers use, named apart from their topics
unification · 0.0propagation-based constraint solving · 0.0optimistic reachability analysis · 0.0call graph construction algorithms · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 1998 | Fast Interprocedural Class AnalysisabstractPrevious algorithms for interprocedural control flow analysis of higher-order and/or object-oriented languages have been described that perform propagation or constraint satisfaction and take O(N3) time (such as Shivers's O-CFA and Heintze's set-based analysis), or unification and take O(Nα (N,N) time (such as Steensgaard's pointer analysis), or optimistic reachability analysis and take O(N) time (such as Bacon and Sweeney's Rapid Type Analysis). We describe a general parameterized analysis framework that integrates propagation-based and unification-based analysis primitives and optimistic reachability analysis, whose instances mimic these existing algorithms as well as several new algorithms taking O(N), O(Nα(N,N)), O(N2), and O(N2α(N,N)) time; our O(N) and O(Nα(N,N)) algorithms produce more precise results than the previous algorithms with these complexities. We implemented our algorithm framework in the Vortex optimizing compiler, and we measured the cost and benefit of these interprocedural analysis algorithms in practice on a collection of substantial Cecil and Java programs. Greg DeFouw, David Grove, Craig Chambers |
POPL | 1 |
| 1997 | Call Graph Construction in Object-Oriented LanguagesabstractInterprocedural analyses enable optimizing compilers to more precisely model the effects of non-inlined procedure calls, potentially resulting in substantial increases in application performance. Applying interprocedural analysis to programs written in object-oriented or functional languages is complicated by the difficulty of constructing an accurate program call graph. This paper presents a parameterized algorithmic framework for call graph construction in the presence of message sends and/or first class functions. We use this framework to describe and to implement a number of well-known and new algorithms. We then empirically assess these algorithms by applying them to a suite of medium-sized programs written in Cecil and Java, reporting on the relative cost of the analyses, the relative precision of the constructed call graphs, and the impact of this precision on the effectiveness of a number of interprocedural optimizations. David Grove, Greg DeFouw, Jeffrey Dean, Craig Chambers |
OOPSLA | 2 |
| 1996 | Vortex: An Optimizing Compiler for Object-Oriented LanguagesabstractPreviously, techniques such as class hierarchy analysis and profile-guided receiver class prediction have been demonstrated to greatly improve the performance of applications written in pure object-oriented languages, but the degree to which these results are transferable to applications written in hybrid languages has been unclear. In part to answer this question, we have developed the Vortex compiler infrastructure, a language-independent optimizing compiler for object-oriented languages, with front-ends for Cecil, C++, Java, and Modula-3. In this paper, we describe the Vortex compiler's intermediate language, internal structure, and optimization suite, and then we report the results of experiments assessing the effectiveness of different combinations of optimizations on sizable applications across these four languages. We characterize the benchmark programs in terms of a collection of static and dynamic metrics, intended to quantify aspects of the "object-orientedness" of a program. Jeffrey Dean, Greg DeFouw, David Grove, Vassily Litvinov, Craig Chambers |
OOPSLA | 2 |