VLDB 2026 Research / reviewers in the wild / expert
Jeffrey Overbey
dblp:77/2126 · also Jeffrey L. Overbey
· DBLP profile ↗
9ranked-venue papers
5as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 5 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
6 papers |
Software maintenance and evolution · 36% Programming languages and type systems · 29% Program analysis · 18% |
Topics — the 10 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution
refactoring |
0.7 | 4 | 2016 | Understanding and fixing multiple language interoperability issues: the C/Fortran case · ICSE 2016 A foundation for refactoring C with macros · SIGSOFT FSE 2014 Differential precondition checking: A lightweight, reusable analysis for refactoring tools · ASE 2011 |
Programming languages and type systems › interoperability
language interoperability |
0.2 | 1 | 2016 | Understanding and fixing multiple language interoperability issues: the C/Fortran case · ICSE 2016 |
Software maintenance and evolution › refactoring
refactoring correctness |
0.1 | 1 | 2011 | Differential precondition checking: A lightweight, reusable analysis for refactoring tools · ASE 2011 |
Concurrent programming › deterministic execution
deterministic parallelism |
0.1 | 2 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 Inferring Method Effect Summaries for Nested Heap Regions · ASE 2009 |
Program analysis
effect analysis |
0.1 | 1 | 2009 | Inferring Method Effect Summaries for Nested Heap Regions · ASE 2009 |
Program analysis › effect analysis
effect inference |
0.1 | 1 | 2009 | Inferring Method Effect Summaries for Nested Heap Regions · ASE 2009 |
Programming languages and type systems › computational effects
type and effect systems |
0.1 | 1 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 |
Programming languages and type systems
type systems |
0.1 | 1 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 |
Empirical software engineering
mining software repositories |
0.1 | 1 | 2016 | Understanding and fixing multiple language interoperability issues: the C/Fortran case · ICSE 2016 |
Programming languages and type systems
object-oriented programming |
0.0 | 1 | 2009 | A type and effect system for deterministic parallel Java · OOPSLA 2009 |
Methods — techniques the papers use, named apart from their topics
empirical study · 0.2automated code analysis · 0.2preprocessor dependence graph · 0.2graph comparison · 0.2linear-time algorithm · 0.1differential precondition checking · 0.1ownership types · 0.1compile-time type checking · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Understanding and fixing multiple language interoperability issues: the C/Fortran caseabstractWe performed an empirical study to understand interoperability issues in C and Fortran programs. C/Fortran interoperability is very common and is representative of general language interoperability issues, such as how interfaces between languages are defined and how data types are shared. Fortran presents an additional challenge, since several ad hoc approaches to C/Fortran interoperability were in use long before a standard mechanism was defined. We explored 20 applications, automatically analyzing over 12 million lines of code. We found that only 3% of interoperability instances follow the ISO standard to describe interfaces; the rest follow a combination of compiler-dependent ad hoc approaches. Several parameters in cross-language functions did not have standards-compliant interoperable types, and about one-fourth of the parameters that were passed by reference could be passed by value. We propose that automated refactoring tools may provide a viable way to migrate programs to use the new interoperability features. We present two refactorings to transform code for this purpose and one refactoring to evolve code thereafter; all of these are instances of multiple language refactorings. Nawrin Sultana, Justin Middleton, Jeffrey Overbey, Munawar Hafiz |
ICSE | 3 |
| 2016 | Differential precondition checking: a language-independent, reusable analysis for refactoring engines
Jeffrey Overbey, Ralph E. Johnson, Munawar Hafiz |
Autom. Softw. Eng. | 1 |
| 2014 | A foundation for refactoring C with macrosabstractThis paper establishes the concept of "preprocessor dependences" as a foundation for building automated refactoring tools that transform source code containing lexical macros and conditional compilation directives, such as those provided by the C preprocessor. We define a preprocessor dependence graph (PPDG) that models the relationships among macro definitions, macro invocations, and conditional compilation directives in a file--the relationships that must be maintained for the semantics of the C preprocessor to be preserved. For many refactorings, a tool can construct a PPDG from the code before and after it is transformed, then perform a linear-time comparison of the two graphs to determine whether the refactoring will operate correctly in the presence of macros and conditional compilation directives. The proposed technique was implemented in OpenRefactory/C and tested by applying refactorings to GNU Coreutils version 8.21. Empirical results indicate that the technique is effective; it successfully handled refactoring scenarios in which Eclipse CDT, Visual Assist X, and XRefactory all refactored code incorrectly. Jeffrey Overbey, Farnaz Behrang, Munawar Hafiz |
SIGSOFT FSE | 1 |
| 2013 | Systematic Testing of Refactoring Engines on Real Software Projects
Milos Gligoric 0001, Farnaz Behrang, Jeffrey Overbey, Munawar Hafiz, Darko Marinov |
ECOOP | 4 |
| 2011 | Differential precondition checking: A lightweight, reusable analysis for refactoring toolsabstractOne of the most difficult parts of building automated refactorings is ensuring that they preserve behavior. This paper proposes a new technique to check for behavior preservation; we call this technique differential precondition checking. It is simple yet expressive enough to implement the most common refactorings, and the core algorithm runs in linear time. However, the main advantage is that a differential precondition checker can be placed in a library and reused in refactoring tools for many different languages; the core algorithm can be implemented in a way that is completely language independent. We have implemented a differential precondition checker and used it in refactoring tools for Fortran (Photran), PHP, and BC. Jeffrey Overbey, Ralph E. Johnson |
ASE | 1 |
| 2009 | Inferring Method Effect Summaries for Nested Heap RegionsabstractEffect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annotations that they require. A tool that infers effects automatically can make effect systems practical. We present an effect inference algorithm and an Eclipse plug-in, DPJizer, which alleviate the burden of writing effect annotations for a language called Deterministic Parallel Java (DPJ). The key novel feature of the algorithm is the ability to infer effects on nested heap regions. Besides DPJ, we also illustrate how the algorithm can be used for a different effect system based on object ownership. Our experience shows that DPJizer is both useful and effective: (i) inferring effect annotations automatically saves significant programming burden; and (ii) inferred effects are more precise than those written manually, and are fine-grained enough to enable the compiler to prove determinism of the program. Mohsen Vakilian, Danny Dig, Robert L. Bocchino Jr., Jeffrey Overbey, Vikram S. Adve, Ralph E. Johnson |
ASE | 4 |
| 2009 | A type and effect system for deterministic parallel JavaabstractToday's shared-memory parallel programming models are complex and error-prone.While many parallel programs are intended to be deterministic, unanticipated thread interleavings can lead to subtle bugs and nondeterministic semantics. In this paper, we demonstrate that a practical type and effect system can simplify parallel programming by guaranteeing deterministic semantics with modular, compile-time type checking even in a rich, concurrent object-oriented language such as Java. We describe an object-oriented type and effect system that provides several new capabilities over previous systems for expressing deterministic parallel algorithms.We also describe a language called Deterministic Parallel Java (DPJ) that incorporates the new type system features, and we show that a core subset of DPJ is sound. We describe an experimental validation showing thatDPJ can express a wide range of realistic parallel programs; that the new type system features are useful for such programs; and that the parallel programs exhibit good performance gains (coming close to or beating equivalent, nondeterministic multithreaded programs where those are available). Robert L. Bocchino Jr., Vikram S. Adve, Danny Dig, Sarita V. Adve, Stephen Heumann, Rakesh Komuravelli, Jeffrey Overbey, Patrick Simmons, Hyojin Sung, Mohsen Vakilian |
OOPSLA | 7 |
| 2009 | Regrowing a language: refactoring tools allow programming languages to evolveabstractSuccessful programming languages change as they age. They tend to become more complex, and eventually some features become outdated or are rarely used. Programming tools for these languages become more complex as well, since they have to support archaic features. Old programs are hard to maintain, since these archaic features are unfamiliar to modern programmers. These problems can be solved by refactoring tools that can transform programs to use the modern form. We show that refactoring tools can ease the cost of program evolution by examining the evolution of two languages, Fortran and Java, and showing that each change corresponds to an automatable refactoring. Jeffrey Overbey, Ralph E. Johnson |
OOPSLA | 1 |
| 2008 | Generating Rewritable Abstract Syntax Trees
Jeffrey Overbey, Ralph E. Johnson |
SLE | 1 |