EDBT 2026 Demo / reviewers in the wild / expert
Jason Hemann
dblp:174/4414
· DBLP profile ↗
3ranked-venue papers
1as first author
2since 2021 · last 2025
0000-0002-5405-2936ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 1 first-author · 2 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
1 paper |
Programming languages and type systems · 70% Program synthesis and code generation · 30% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
language design |
0.9 | 1 | 2025 | Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025 |
Programming languages and type systems › metaprogramming
multi-stage programming |
0.9 | 1 | 2025 | Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025 |
Program synthesis and code generation
relational program synthesis |
0.9 | 1 | 2025 | Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025 |
Programming languages and type systems
logic programming |
0.3 | 1 | 2025 | Multi-stage Relational Programming · Proc. ACM Program. Lang. 2025 |
Methods — techniques the papers use, named apart from their topics
staging · 0.9relational interpretation · 0.9minikanren · 0.9
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Multi-stage Relational ProgrammingabstractWe transport multi-stage programming from functional to relational programming, with novel constructs to give programmers control over staging and non-determinism. We stage interpreters written as relations, in which the programs under interpretation can contain holes representing unknown expressions or values. By compiling the known parts without interpretive overhead and deferring interpretation to run time only for the unknown parts, we compound the benefits of staging (e.g., turning interpreters into compilers) and relational interpretation (e.g., turning functions into relations and synthesizing from sketches). We extend miniKanren with staging constructs and apply the resulting multi-stage language to relational interpreters for subsets of Racket and miniKanren as well as a relational recognizer for context-free grammars. We demonstrate significant performance gains across multiple synthesis problems, systematically comparing unstaged and staged computation, as well as indicatively comparing with an existing hand-tuned relational interpreter. Michael Ballantyne, Rafaello Sanna, Jason Hemann, William E. Byrd, Nada Amin |
Proc. ACM Program. Lang. | 3 |
| 2024 | Compiled, Extensible, Multi-language DSLs (Functional Pearl)abstractImplementations of domain-specific languages should offer both extensibility and performance optimizations. With the new syntax-spec metalanguage in Racket, programmers can easily create DSL implementations that are both automatically macro-extensible and subject to conventional compiler optimizations. This pearl illustrates this approach through a new implementation of miniKanren, a widely used relational programming DSL. The miniKanren community has explored, in separate implementations, optimization techniques and a wide range of extensions. We demonstrate how our new miniKanren implementation with syntax-spec reconciles these features in a single implementation that comes with both an optimizing compiler and an extension mechanism. Furthermore, programmers using the new implementation benefit from the same seamless integration between Racket and miniKanren as in existing shallow embeddings. Michael Ballantyne, Mitch Gamburg, Jason Hemann |
Proc. ACM Program. Lang. | 3 |
| 2016 | A small embedding of logic programming with a simple complete searchabstractWe present a straightforward, call-by-value embedding of a small logic programming language with a simple complete search. We construct the entire language in 54 lines of Racket---half of which implement unification. We then layer over it, in 43 lines, a reconstruction of an existing logic programming language, miniKanren, and attest to our implementation's pedagogical value. Evidence suggests our combination of expressiveness, concision, and elegance is compelling: since microKanren's release, it has spawned over 50 embeddings in over two dozen host languages, including Go, Haskell, Prolog and Smalltalk. Jason Hemann, Daniel P. Friedman, William E. Byrd, Matthew Might |
DLS | 1 |