VLDB 2026 Research / reviewers in the wild / expert
Jakob Hain
dblp:245/0226
· DBLP profile ↗
3ranked-venue papers
0as first author
1since 2021 · last 2026
0009-0002-7471-0702ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 1 since 2021
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 · 47% Compilers and program optimization · 45% Runtime systems and virtual machines · 9% |
Topics — the 8 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
dynamic languages |
1.0 | 1 | 2026 | A Typed Intermediate Representation for Dynamic Languages · ACM Trans. Program. Lang. Syst. 2026 |
Programming languages and type systems › type systems
gradual typing |
1.0 | 1 | 2026 | A Typed Intermediate Representation for Dynamic Languages · ACM Trans. Program. Lang. Syst. 2026 |
Compilers and program optimization
intermediate representation |
1.0 | 1 | 2026 | A Typed Intermediate Representation for Dynamic Languages · ACM Trans. Program. Lang. Syst. 2026 |
Compilers and program optimization
specialization |
1.0 | 1 | 2026 | A Typed Intermediate Representation for Dynamic Languages · ACM Trans. Program. Lang. Syst. 2026 |
Programming languages and type systems › language implementation
typed intermediate language |
1.0 | 1 | 2026 | A Typed Intermediate Representation for Dynamic Languages · ACM Trans. Program. Lang. Syst. 2026 |
Runtime systems and virtual machines
dynamic language implementation |
0.4 | 1 | 2020 | Contextual dispatch for function specialization · Proc. ACM Program. Lang. 2020 |
Compilers and program optimization › compiler optimization
speculative optimization |
0.4 | 1 | 2020 | Contextual dispatch for function specialization · Proc. ACM Program. Lang. 2020 |
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
deoptimization |
0.1 | 1 | 2020 | Contextual dispatch for function specialization · Proc. ACM Program. Lang. 2020 |
Methods — techniques the papers use, named apart from their topics
ownership tracking · 1.0gradual typing · 1.0function versioning · 0.4dynamic type speculation · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A Typed Intermediate Representation for Dynamic LanguagesabstractDynamic programming languages pose significant challenges for optimizing compilers due to features such as dynamic typing, late binding, reflection, copy-on-write, and delayed evaluation. To generate efficient code, compilers must speculate on which dynamic features will be exercised and produce specialized code based on these assumptions. This article presents the design of a statically typed, high-level intermediate representation (IR) that makes dynamic behaviors explicit and amenable to static analysis. Our IR combines gradual typing with ownership tracking, and explicitly represents promises, multiple function versions, and contextual dispatch. Together, these features directly support optimizations such as specialization, inlining, scope elision, and copy elimination. We formalize a core calculus, called FIŘ, that captures the essential features required for these optimizations. We provide an operational semantics, a type system, and flow and reflection analyses, and we prove the soundness of the type system. Mickaël Laurent, Jakob Hain, Filip Krikava, Sebastián Krynski, Jan Vitek |
ACM Trans. Program. Lang. Syst. | 2 |
| 2020 | Contextual dispatch for function specializationabstractIn order to generate efficient code, dynamic language compilers often need information, such as dynamic types, not readily available in the program source. Leveraging a mixture of static and dynamic information, these compilers speculate on the missing information. Within one compilation unit, they specialize the generated code to the previously observed behaviors, betting that past is prologue. When speculation fails, the execution must jump back to unoptimized code. In this paper, we propose an approach to further the specialization, by disentangling classes of behaviors into separate optimization units. With contextual dispatch, functions are versioned and each version is compiled under different assumptions. When a function is invoked, the implementation dispatches to a version optimized under assumptions matching the dynamic context of the call. As a proof-of-concept, we describe a compiler for the R language which uses this approach. Our implementation is, on average, 1.7× faster than the GNU R reference implementation. We evaluate contextual dispatch on a set of benchmarks and measure additional speedup, on top of traditional speculation with deoptimization techniques. In this setting contextual dispatch improves the performance of 18 out of 46 programs in our benchmark suite. Olivier Flückiger, Guido Chari, Ming-Ho Yee, Jan Jecmen, Jakob Hain, Jan Vitek |
Proc. ACM Program. Lang. | 5 |
| 2019 | R melts brains: an IR for first-class environments and lazy effectful argumentsabstractThe R programming language combines a number of features considered hard to analyze and implement efficiently: dynamic typing, reflection, lazy evaluation, vectorized primitive types, first-class closures, and extensive use of native code. Additionally, variable scopes are reified at runtime as first-class environments. The combination of these features renders most static program analysis techniques impractical, and thus, compiler optimizations based on them ineffective. We present our work on PIR, an intermediate representation with explicit support for first-class environments and effectful lazy evaluation. We describe two dataflow analyses on PIR: the first enables reasoning about variables and their environments, and the second infers where arguments are evaluated. Leveraging their results, we show how to elide environment creation and inline functions. Olivier Flückiger, Guido Chari, Jan Jecmen, Ming-Ho Yee, Jakob Hain, Jan Vitek |
DLS | 5 |