VLDB 2026 Research / reviewers in the wild / expert
Yuheng Long
dblp:65/8636
· DBLP profile ↗
4ranked-venue papers
3as first author
0since 2021 · last 2018
0000-0002-7091-4831ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 3 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
2 papers |
Programming languages and type systems · 63% Empirical software engineering · 28% Program analysis · 8% |
Topics — the 5 heaviest of 6, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Empirical software engineering
mining software repositories |
0.3 | 1 | 2018 | Large-scale study of substitutability in the presence of effects · ESEC/SIGSOFT FSE 2018 |
Programming languages and type systems › computational effects
type and effect systems |
0.2 | 1 | 2016 | First-class effect reflection for effect-guided programming · OOPSLA 2016 |
Program analysis
effect analysis |
0.1 | 1 | 2018 | Large-scale study of substitutability in the presence of effects · ESEC/SIGSOFT FSE 2018 |
Programming languages and type systems › type systems
refinement types |
0.1 | 1 | 2016 | First-class effect reflection for effect-guided programming · OOPSLA 2016 |
Programming languages and type systems
type systems |
0.1 | 1 | 2016 | First-class effect reflection for effect-guided programming · OOPSLA 2016 |
Methods — techniques the papers use, named apart from their topics
large-scale static analysis · 0.3static analysis · 0.2dynamic analysis · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Large-scale study of substitutability in the presence of effectsabstractA majority of modern software is constructed using languages that compute by producing side-effects such as reading/writing from/to files, throwing exceptions, acquiring locks, etc. To understand a piece of software, e.g. a class, it is important for a developer to understand its side-effects. Similarly, to replace a class with another, it is important to understand whether the replacement is a safe substitution for the former in terms of its behavior, a property known as substitutability, because mismatch may lead to bugs. The problem is especially severe for superclass-subclass pairs since at runtime an instance of the subclass may be used in the client code where a superclass is mentioned. Despite the importance of this property, we do not yet know whether substitutability w.r.t. effects between subclass and superclass is preserved in the wild, and if not what sorts of substitutability violations are common and what is the impact of such violations. This paper conducts a large scale study on over 20 million Java classes, in order to compare the effects of the methods of subclasses and superclasses in practice. Our comprehensive study considers the exception, synchronization, I/O, and method call effects. It reveals that in pairs with effects, only 8-24% have the same effects, and 31-56% of submethods have more effects, and the effects of a large percentage of submethods cannot be inferred from the supermethod. Jackson Maddox, Yuheng Long, Hridesh Rajan |
ESEC/SIGSOFT FSE | 2 |
| 2016 | First-class effect reflection for effect-guided programmingabstractThis paper introduces a novel type-and-effect calculus, first-class effects, where the computational effect of an expression can be programmatically reflected, passed around as values, and analyzed at run time. A broad range of designs "hard-coded" in existing effect-guided analyses — from thread scheduling, version-consistent software updating, to data zeroing — can be naturally supported through the programming abstractions. The core technical development is a type system with a number of features, including a hybrid type system that integrates static and dynamic effect analyses, a refinement type system to verify application-specific effect management properties, a double-bounded type system that computes both over-approximation of effects and their under-approximation. We introduce and establish a notion of soundness called trace consistency, defined in terms of how the effect and trace correspond. The property sheds foundational insight on "good" first-class effect programming. Yuheng Long, Yu David Liu, Hridesh Rajan |
OOPSLA | 1 |
| 2015 | Intensional Effect PolymorphismabstractType-and-effect systems are a powerful tool for program construction and verification. We describe intensional effect polymorphism, a new foundation for effect systems that integrates static and dynamic effect checking. Our system allows the effect of polymorphic code to be intensionally inspected through a lightweight notion of dynamic typing. When coupled with parametric polymorphism, the powerful system utilizes runtime information to enable precise effect reasoning, while at the same time retains strong type safety guarantees. We build our ideas on top of an imperative core calculus with regions. The technical innovations of our design include a relational notion of effect checking, the use of bounded existential types to capture the subtle interactions between static typing and dynamic typing, and a differential alignment strategy to achieve efficiency in dynamic typing. We demonstrate the applications of intensional effect polymorphism in concurrent programming, security, graphical user interface access, and memoization. Yuheng Long, Yu David Liu, Hridesh Rajan |
ECOOP | 1 |
| 2010 | Implicit invocation meets safe, implicit concurrencyabstractWriting correct and efficient concurrent programs still remains a challenge. Explicit concurrency is difficult, error prone, and creates code which is hard to maintain and debug. This type of concurrency also treats modular program design and concurrency as separate goals, where modularity often suffers. To solve these problems, we are designing a new language that we call Panini. In this paper, we focus on Panini's asynchronous, typed events which reconcile the modularity goal promoted by the implicit invocation design style with the concurrency goal of exposing potential concurrency between the execution of subjects and observers. Yuheng Long, Sean L. Mooney, Tyler Sondag, Hridesh Rajan |
GPCE | 1 |