VLDB 2026 Research / reviewers in the wild / expert
Christian Humer
dblp:136/0912
· DBLP profile ↗
5ranked-venue papers
1as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 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
1 paper |
Runtime systems and virtual machines · 61% Compilers and program optimization · 30% Programming languages and type systems · 9% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines › dynamic language implementation
dynamic language runtime |
0.3 | 1 | 2017 | Practical partial evaluation for high-performance dynamic language runtimes · PLDI 2017 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.3 | 1 | 2017 | Practical partial evaluation for high-performance dynamic language runtimes · PLDI 2017 |
Compilers and program optimization
partial evaluation |
0.3 | 1 | 2017 | Practical partial evaluation for high-performance dynamic language runtimes · PLDI 2017 |
Programming languages and type systems
dynamic languages |
0.1 | 1 | 2017 | Practical partial evaluation for high-performance dynamic language runtimes · PLDI 2017 |
Methods — techniques the papers use, named apart from their topics
speculation · 0.3profiling · 0.3partial evaluation · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | Language-independent development environment support for dynamic runtimesabstractThere are many factors for the success of a new programming language implementation. Existing language implementation frameworks such as Truffle or RPython have focused on run-time performance and security, or on providing a comprehensive set of libraries. Daniel Stolpe, Tim Felgentreff, Christian Humer, Fabio Niephaus, Robert Hirschfeld |
DLS | 3 |
| 2018 | Efficient dynamic analysis for Node.jsabstractDue to its popularity, there is an urgent need for dynamic program-analysis tools for Node.js, helping developers find bugs, performance bottlenecks, and bad coding practices. Frameworks based on code-level instrumentation enable dynamic analyses close to program semantics and are more flexible than Node.js built-in profiling tools. However, existing code-level instrumentation frameworks for JavaScript suffer from enormous overheads and difficulties in instrumenting the built-in module library of Node.js. In this paper, we introduce a new dynamic analysis framework for JavaScript and Node.js called NodeProf. While offering similar flexibility as code-level instrumentation frameworks, NodeProf significantly improves analysis performance while ensuring comprehensive code coverage. NodeProf supports runtime (de)activation of analyses and incurs zero overhead when no analysis is active. NodeProf is based on dynamic instrumentation of the JavaScript runtime and leverages automatic partial evaluation to generate efficient machine code. In addition, NodeProf makes use of the language interoperability provided by the runtime and thus allows dynamic analyses to be written in Java and JavaScript with compatibility to Jalangi, a state-of-the-art code-level JavaScript instrumentation framework. Our experiments show that the peak performance of running the same dynamic analyses using NodeProf can be up to three orders of magnitude faster than Jalangi. Haiyang Sun 0003, Daniele Bonetta, Christian Humer, Walter Binder |
CC | 3 |
| 2017 | Practical partial evaluation for high-performance dynamic language runtimesabstractMost high-performance dynamic language virtual machines duplicate language semantics in the interpreter, compiler, and runtime system. This violates the principle to not repeat yourself. In contrast, we define languages solely by writing an interpreter. The interpreter performs specializations, e.g., augments the interpreted program with type information and profiling information. Compiled code is derived automatically using partial evaluation while incorporating these specializations. This makes partial evaluation practical in the context of dynamic languages: It reduces the size of the compiled code while still compiling all parts of an operation that are relevant for a particular program. When a speculation fails, execution transfers back to the interpreter, the program re-specializes in the interpreter, and later partial evaluation again transforms the new state of the interpreter to compiled code. We evaluate our approach by comparing our implementations of JavaScript, Ruby, and R with best-in-class specialized production implementations. Our general-purpose compilation system is competitive with production systems even when they have been heavily optimized for the one language they support. For our set of benchmarks, our speedup relative to the V8 JavaScript VM is 0.83x, relative to JRuby is 3.8x, and relative to GNU R is 5x. Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöß, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, Matthias Grimmer |
PLDI | 3 |
| 2016 | Optimizing R language execution via aggressive speculationabstractThe R language, from the point of view of language design and implementation, is a unique combination of various programming language concepts. It has functional characteristics like lazy evaluation of arguments, but also allows expressions to have arbitrary side effects. Many runtime data structures, for example variable scopes and functions, are accessible and can be modified while a program executes. Several different object models allow for structured programming, but the object models can interact in surprising ways with each other and with the base operations of R. Lukas Stadler, Adam Welc, Christian Humer, Mick Jordan |
DLS | 3 |
| 2014 | A domain-specific language for building self-optimizing AST interpretersabstractSelf-optimizing AST interpreters dynamically adapt to the provided input for faster execution. This adaptation includes initial tests of the input, changes to AST nodes, and insertion of guards that ensure assumptions still hold. Such specialization and speculation is essential for the performance of dynamic programming languages such as JavaScript. In traditional procedural and objectoriented programming languages it can be tedious to write selfoptimizing AST interpreters, as those languages fail to provide constructs that would specifically support that. This paper introduces a declarative domain-specific language (DSL) that greatly simplifies writing self-optimizing AST interpreters. The DSL supports specialization of operations based on types of the input and other properties. It can then use these specializations directly or chain them to represent the operation with the minimum amount of code possible. The DSL significantly reduces the complexity of expressing specializations for those interpreters. We use it in our high-performance implementation of JavaScript, where 274 language operations have an average of about 4 and a maximum of 190 specializations. In addition, the DSL is used in implementations of Ruby, Python, R, and Smalltalk. Christian Humer, Christian Wimmer, Christian Wirth 0002, Andreas Wöß, Thomas Würthinger |
GPCE | 1 |