Demo Data from VLDB 2026 / reviewers in the wild / expert
Michael J. Steindorfer
dblp:150/9959
· DBLP profile ↗
7ranked-venue papers
5as 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 · 7 · 5 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.
| Theoretical computer science
2 papers |
Algorithms and data structures · 100% | |
| Software engineering, system software, and programming languages
2 papers |
Runtime systems and virtual machines · 57% Compilers and program optimization · 26% Programming languages and type systems · 17% |
Topics — the 3 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Algorithms and data structures › dynamic data structures
persistent data structures |
0.5 | 2 | 2018 | To-many or to-one? all-in-one! efficient purely functional multi-maps with type-heterogeneous hash-tries · PLDI 2018 Optimizing hash-array mapped tries for fast and lean immutable JVM collections · OOPSLA 2015 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.2 | 1 | 2015 | Optimizing hash-array mapped tries for fast and lean immutable JVM collections · OOPSLA 2015 |
Programming languages and type systems
functional programming |
0.1 | 1 | 2015 | Optimizing hash-array mapped tries for fast and lean immutable JVM collections · OOPSLA 2015 |
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | To-many or to-one? all-in-one! efficient purely functional multi-maps with type-heterogeneous hash-triesabstractAn immutable multi-map is a many-to-many map data structure with expected fast insert and lookup operations. This data structure is used for applications processing graphs or many-to-many relations as applied in compilers, runtimes of programming languages, or in static analysis of object-oriented systems. Collection data structures are assumed to carefully balance execution time of operations with memory consumption characteristics and need to scale gracefully from a few elements to multiple gigabytes at least. When processing larger in-memory data sets the overhead of the data structure encoding itself becomes a memory usage bottleneck, dominating the overall performance. Michael J. Steindorfer, Jurgen J. Vinju |
PLDI | 1 |
| 2018 | Declarative specification of indentation rules: a tooling perspective on parsing and pretty-printing layout-sensitive languagesabstractIn layout-sensitive languages, the indentation of an expression or statement can influence how a program is parsed. While some of these languages (e.g., Haskell and Python) have been widely adopted, there is little support for software language engineers in building tools for layout-sensitive languages. As a result, parsers, pretty-printers, program analyses, and refactoring tools often need to be handwritten, which decreases the maintainability and extensibility of these tools. Even state-of-the-art language workbenches have little support for layout-sensitive languages, restricting the development and prototyping of such languages. Luís Eduardo de Souza Amorim, Michael J. Steindorfer, Sebastian Erdweg, Eelco Visser |
SLE | 2 |
| 2017 | Deep priority conflicts in the wild: a pilot studyabstractContext-free grammars are suitable for formalizing the syntax of programming languages concisely and declaratively. Thus, such grammars are often found in reference manuals of programming languages, and used in language workbenches for language prototyping. However, the natural and concise way of writing a context-free grammar is often ambiguous. Luís Eduardo de Souza Amorim, Michael J. Steindorfer, Eelco Visser |
SLE | 2 |
| 2016 | Towards a software product line of trie-based collectionsabstractCollection data structures in standard libraries of programming languages are designed to excel for the average case by carefully balancing memory footprint and runtime performance. These implicit design decisions and hard-coded trade-offs do constrain users from using an optimal variant for a given problem. Although a wide range of specialized collections is available for the Java Virtual Machine (JVM), they introduce yet another dependency and complicate user adoption by requiring specific Application Program Interfaces (APIs) incompatible with the standard library. Michael J. Steindorfer, Jurgen J. Vinju |
GPCE | 1 |
| 2016 | Performance Modeling of Maximal SharingabstractIt is noticeably hard to predict the effect of optimization strategies in Java without implementing them. "Maximal sharing" (a.k.a. "hash-consing") is one of these strategies that may have great benefit in terms of time and space, or may have detrimental overhead. It all depends on the redundancy of data and the use of equality. We used a combination of new techniques to predict the impact of maximal sharing on existing code: Object Redundancy Profiling (ORP) to model the effect on memory when sharing all immutable objects, and Equals-Call Profiling (ECP) to reason about how removing redundancy impacts runtime performance. With comparatively low effort, using the MAximal SHaring Oracle (MASHO), a prototype profiler based on ORP and ECP, we can uncover optimization opportunities that otherwise would remain hidden. Michael J. Steindorfer, Jurgen J. Vinju |
ICPE | 1 |
| 2015 | Optimizing hash-array mapped tries for fast and lean immutable JVM collectionsabstractThe data structures under-pinning collection API (e.g. lists, sets, maps) in the standard libraries of programming languages are used intensively in many applications. The standard libraries of recent Java Virtual Machine languages, such as Clojure or Scala, contain scalable and well-performing immutable collection data structures that are implemented as Hash-Array Mapped Tries (HAMTs). HAMTs already feature efficient lookup, insert, and delete operations, however due to their tree-based nature their memory footprints and the runtime performance of iteration and equality checking lag behind array-based counterparts. This particularly prohibits their application in programs which process larger data sets. In this paper, we propose changes to the HAMT design that increase the overall performance of immutable sets and maps. The resulting general purpose design increases cache locality and features a canonical representation. It outperforms Scala’s and Clojure’s data structure implementations in terms of memory footprint and runtime efficiency of iteration (1.3–6.7x) and equality checking (3–25.4x). Michael J. Steindorfer, Jurgen J. Vinju |
OOPSLA | 1 |
| 2014 | Code specialization for memory efficient hash tries (short paper)abstractThe hash trie data structure is a common part in standard collection libraries of JVM programming languages such as Clojure and Scala. It enables fast immutable implementations of maps, sets, and vectors, but it requires considerably more memory than an equivalent array-based data structure. This hinders the scalability of functional programs and the further adoption of this otherwise attractive style of programming. In this paper we present a product family of hash tries. We generate Java source code to specialize them using knowledge of JVM object memory layout. The number of possible specializations is exponential. The optimization challenge is thus to find a minimal set of variants which lead to a maximal loss in memory footprint on any given data. Using a set of experiments we measured the distribution of internal tree node sizes in hash tries. We used the results as a guidance to decide which variants of the family to generate and which variants should be left to the generic implementation. A preliminary validating experiment on the implementation of sets and maps shows that this technique leads to a median decrease of 55% in memory footprint for maps (and 78% for sets), while still maintaining comparable performance. Our combination of data analysis and code specialization proved to be effective. Michael J. Steindorfer, Jurgen J. Vinju |
GPCE | 1 |