VLDB 2026 Research / reviewers in the wild / expert
Chris Seaton
dblp:150/9937 · also Christopher Graham Seaton
· DBLP profile ↗
4ranked-venue papers
0as first author
0since 2021 · last 2018
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4
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 |
Runtime systems and virtual machines · 48% Programming languages and type systems · 40% Compilers and program optimization · 12% |
Topics — the 9 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.5 | 2 | 2017 | Practical partial evaluation for high-performance dynamic language runtimes · PLDI 2017 Zero-overhead metaprogramming: reflection and metaobject protocols fast and without compromises · PLDI 2015 |
Runtime systems and virtual machines
dynamic compilation |
0.3 | 1 | 2018 | Cross-Language Interoperability in a Multi-Language Runtime · ACM Trans. Program. Lang. Syst. 2018 |
Programming languages and type systems › interoperability
language interoperability |
0.3 | 1 | 2018 | Cross-Language Interoperability in a Multi-Language Runtime · ACM Trans. Program. Lang. Syst. 2018 |
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 |
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 › metaprogramming
metaobject protocol |
0.2 | 1 | 2015 | Zero-overhead metaprogramming: reflection and metaobject protocols fast and without compromises · PLDI 2015 |
Programming languages and type systems
metaprogramming |
0.2 | 1 | 2015 | Zero-overhead metaprogramming: reflection and metaobject protocols fast and without compromises · PLDI 2015 |
Programming languages and type systems
language implementation |
0.1 | 1 | 2018 | Cross-Language Interoperability in a Multi-Language Runtime · ACM Trans. Program. Lang. Syst. 2018 |
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
partial evaluation · 0.5intermediate representation · 0.3generic access · 0.3dynamic compilation · 0.3speculation · 0.3profiling · 0.3polymorphic inline caching · 0.2meta-tracing · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Cross-Language Interoperability in a Multi-Language RuntimeabstractIn large-scale software applications, programmers often combine different programming languages because this allows them to use the most suitable language for a given problem, to gradually migrate existing projects from one language to another, or to reuse existing source code. However, different programming languages have fundamentally different implementations, which are hard to combine. The composition of language implementations often results in complex interfaces between languages, insufficient flexibility, or poor performance. We propose TruffleVM, a virtual machine (VM) that can execute different programming languages and is able to compose them in a seamless way. TruffleVM supports dynamically-typed languages (e.g., JavaScript and Ruby) as well as statically typed low-level languages (e.g., C). It consists of individual language implementations, which translate source code to an intermediate representation that is executed by a shared VM. TruffleVM composes these different language implementations via generic access . Generic access is a language-agnostic mechanism that language implementations use to access foreign data or call foreign functions. It features language-agnostic messages that the TruffleVM resolves to efficient foreign-language-specific operations at runtime. Generic access supports multiple languages, enables an efficient multi-language development, and ensures high performance. We evaluate generic access with two case studies. The first one explains the transparent composition of JavaScript, Ruby, and C. The second one shows an implementation of the C extensions application programming interface (API) for Ruby. We show that generic access guarantees good runtime performance. It avoids conversion or marshalling of foreign objects at the language boundary and allows the dynamic compiler to perform its optimizations across language boundaries. Matthias Grimmer, Roland Schatz, Chris Seaton, Thomas Würthinger, Mikel Luján |
ACM Trans. Program. Lang. Syst. | 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 | 6 |
| 2015 | High-performance cross-language interoperability in a multi-language runtimeabstractProgrammers combine different programming languages because it allows them to use the most suitable language for a given problem, to gradually migrate existing projects from one language to another, or to reuse existing source code. However, existing cross-language mechanisms suffer from complex interfaces, insufficient flexibility, or poor performance. We present the TruffleVM, a multi-language runtime that allows composing different language implementations in a seamless way. It reduces the amount of required boiler-plate code to a minimum by allowing programmers to access foreign functions or objects by using the notation of the host language. We compose language implementations that translate source code to an intermediate representation (IR), which is executed on top of a shared runtime system. Language implementations use language-independent messages that the runtime resolves at their first execution by transforming them to efficient foreign-language-specific operations. The TruffleVM avoids conversion or marshaling of foreign objects at the language boundary and allows the dynamic compiler to perform its optimizations across language boundaries, which guarantees high performance. This paper presents an implementation of our ideas based on the Truffle system and its guest language implementations JavaScript, Ruby, and C. Matthias Grimmer, Chris Seaton, Roland Schatz, Thomas Würthinger, Hanspeter Mössenböck |
DLS | 2 |
| 2015 | Zero-overhead metaprogramming: reflection and metaobject protocols fast and without compromisesabstractRuntime metaprogramming enables many useful applications and is often a convenient solution to solve problems in a generic way, which makes it widely used in frameworks, middleware, and domain-specific languages. However, powerful metaobject protocols are rarely supported and even common concepts such as reflective method invocation or dynamic proxies are not optimized. Solutions proposed in literature either restrict the metaprogramming capabilities or require application or library developers to apply performance improving techniques. For overhead-free runtime metaprogramming, we demonstrate that dispatch chains, a generalized form of polymorphic inline caches common to self-optimizing interpreters, are a simple optimization at the language-implementation level. Our evaluation with self-optimizing interpreters shows that unrestricted metaobject protocols can be realized for the first time without runtime overhead, and that this optimization is applicable for just-in-time compilation of interpreters based on meta-tracing as well as partial evaluation. In this context, we also demonstrate that optimizing common reflective operations can lead to significant performance improvements for existing applications. Stefan Marr, Chris Seaton, Stéphane Ducasse |
PLDI | 2 |