Demo Data from EDBT 2026 / reviewers in the wild / expert
Dmitry Petrashko
dblp:161/8035
· DBLP profile ↗
3ranked-venue papers
2as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 2 · 2 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 |
Compilers and program optimization · 67% Program analysis · 26% Programming languages and type systems · 8% |
Topics — the 4 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization › program transformation
tree transformations |
0.3 | 1 | 2017 | Miniphases: compilation using modular and efficient tree transformations · PLDI 2017 |
Program analysis › static analysis
call graph construction |
0.2 | 1 | 2016 | Call graphs for languages with parametric polymorphism · OOPSLA 2016 |
Compilers and program optimization › compiler optimization › type-based optimization
devirtualization |
0.1 | 1 | 2016 | Call graphs for languages with parametric polymorphism · OOPSLA 2016 |
Programming languages and type systems › type systems › polymorphism
parametric polymorphism |
0.1 | 1 | 2016 | Call graphs for languages with parametric polymorphism · OOPSLA 2016 |
Methods — techniques the papers use, named apart from their topics
modular compilation · 0.3intermediate representation traversal · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Miniphases: compilation using modular and efficient tree transformationsabstractProduction compilers commonly perform dozens of transformations on an intermediate representation. Running those transformations in separate passes harms performance. One approach to recover performance is to combine transformations by hand in order to reduce number of passes. Such an approach harms modularity, and thus makes it hard to maintain and evolve a compiler over the long term, and makes reasoning about performance harder. This paper describes a methodology that allows a compiler writer to define multiple transformations separately, but fuse them into a single traversal of the intermediate representation when the compiler runs. This approach has been implemented in a compiler for the Scala language. Our performance evaluation indicates that this approach reduces the running time of tree transformations by 35% and shows that this is due to improved cache friendliness. At the same time, the approach improves total memory consumption by reducing the object tenuring rate by 50%. This approach enables compiler writers to write transformations that are both modular and fast at the same time. Dmitry Petrashko, Ondrej Lhoták, Martin Odersky |
PLDI | 1 |
| 2016 | Call graphs for languages with parametric polymorphismabstractThe performance of contemporary object oriented languages depends on optimizations such as devirtualization, inlining, and specialization, and these in turn depend on precise call graph analysis. Existing call graph analyses do not take advantage of the information provided by the rich type systems of contemporary languages, in particular generic type arguments. Many existing approaches analyze Java bytecode, in which generic types have been erased. This paper shows that this discarded information is actually very useful as the context in a context-sensitive analysis, where it significantly improves precision and keeps the running time small. Specifically, we propose and evaluate call graph construction algorithms in which the contexts of a method are (i) the type arguments passed to its type parameters, and (ii) the static types of the arguments passed to its term parameters. The use of static types from the caller as context is effective because it allows more precise dispatch of call sites inside the callee. Dmitry Petrashko, Vlad Ureche, Ondrej Lhoták, Martin Odersky |
OOPSLA | 1 |
| 2015 | Efficient Lock-Free Work-Stealing Iterators for Data-Parallel CollectionsabstractHigh-level data-structures are an important foundation for most applications. With the rise of multicores, there is a trend of supporting data-parallel collection operations in general purpose programming languages. However, these operations often incur high-level abstraction and scheduling penalties. We present a generic data-parallel collections design based on work-stealing for shared-memory architectures that overcomes abstraction penalties through call site specialization of data-parallel operation instances. Moreover, we introduce work-stealing iterators that allow more fine-grained and efficient work-stealing. By eliminating abstraction penalties and making work-stealing data-structure-aware we achieve several dozen times better performance compared to existing JVM-based approaches. Aleksandar Prokopec, Dmitry Petrashko, Martin Odersky |
PDP | 2 |