VLDB 2026 Research / reviewers in the wild / expert
Justin Pombrio
dblp:120/5116
· DBLP profile ↗
7ranked-venue papers
4as first author
1since 2021 · last 2023
0009-0004-0244-6193ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 4 first-author · 1 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
3 papers |
Compilers and program optimization · 60% Programming languages and type systems · 40% |
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
pretty printing |
0.7 | 1 | 2023 | A Pretty Expressive Printer · Proc. ACM Program. Lang. 2023 |
Programming languages and type systems
type systems |
0.3 | 1 | 2018 | Inferring type rules for syntactic sugar · PLDI 2018 |
Programming languages and type systems › language design
syntactic sugar |
0.3 | 2 | 2018 | Resugaring: lifting evaluation sequences through syntactic sugar · PLDI 2014 Inferring type rules for syntactic sugar · PLDI 2018 |
Compilers and program optimization
program transformation |
0.1 | 1 | 2014 | Resugaring: lifting evaluation sequences through syntactic sugar · PLDI 2014 |
Methods — techniques the papers use, named apart from their topics
lean theorem prover · 0.7cost factory · 0.7type rule reconstruction · 0.3evaluation sequence lifting · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | A Pretty Expressive PrinterabstractPretty printers make trade-offs between the expressiveness of their pretty printing language, the optimality objective that they minimize when choosing between different ways to lay out a document, and the performance of their algorithm. This paper presents a new pretty printer, Π e , that is strictly more expressive than all pretty printers in the literature and provably minimizes an optimality objective. Furthermore, the time complexity of Π e is better than many existing pretty printers. When choosing among different ways to lay out a document, Π e consults a user-supplied cost factory , which determines the optimality objective, giving Π e a unique degree of flexibility. We use the Lean theorem prover to verify the correctness (validity and optimality) of Π e , and implement Π e concretely as a pretty printer that we call PrettyExpressive. To evaluate our pretty printer against others, we develop a formal framework for reasoning about the expressiveness of pretty printing languages, and survey pretty printers in the literature, comparing their expressiveness, optimality, worst-case time complexity, and practical running time. Our evaluation shows that PrettyExpressive is efficient and effective at producing optimal layouts. PrettyExpressive has also seen real-world adoption: it serves as a foundation of a code formatter for Racket. Sorawee Porncharoenwase, Justin Pombrio, Emina Torlak |
Proc. ACM Program. Lang. | 2 |
| 2018 | The behavior of gradual types: a user studyabstractThere are several different gradual typing semantics, reflecting different trade-offs between performance and type soundness guarantees. Notably absent, however, are any data on which of these semantics developers actually prefer. Preston Tunnell Wilson, Ben Greenman, Justin Pombrio, Shriram Krishnamurthi |
DLS | 3 |
| 2018 | Inferring type rules for syntactic sugarabstractType systems and syntactic sugar are both valuable to programmers, but sometimes at odds. While sugar is a valuable mechanism for implementing realistic languages, the expansion process obscures program source structure. As a result, type errors can reference terms the programmers did not write (and even constructs they do not know), baffling them. The language developer must also manually construct type rules for the sugars, to give a typed account of the surface language. We address these problems by presenting a process for automatically reconstructing type rules for the surface language using rules for the core. We have implemented this theory, and show several interesting case studies. Justin Pombrio, Shriram Krishnamurthi |
PLDI | 1 |
| 2017 | Inferring scope through syntactic sugarabstractMany languages use syntactic sugar to define parts of their surface language in terms of a smaller core. Thus some properties of the surface language, like its scoping rules , are not immediately evident. Nevertheless, IDEs, refactorers, and other tools that traffic in source code depend on these rules to present information to users and to soundly perform their operations. In this paper, we show how to lift scoping rules defined on a core language to rules on the surface, a process of scope inference . In the process we introduce a new representation of binding structure---scope as a preorder---and present a theoretical advance: proving that a desugaring system preserves α-equivalence even though scoping rules have been provided only for the core language. We have also implemented the system presented in this paper. Justin Pombrio, Shriram Krishnamurthi, Mitchell Wand |
Proc. ACM Program. Lang. | 1 |
| 2015 | Hygienic resugaring of compositional desugaringabstractSyntactic sugar is widely used in language implementation. Its benefits are, however, offset by the comprehension problems it presents to programmers once their program has been transformed. In particular, after a transformed program has begun to evaluate (or otherwise be altered by a black-box process), it can become unrecognizable. We present a new approach to _resugaring_ programs, which is the act of reflecting evaluation steps in the core language in terms of the syntactic sugar that the programmer used. Relative to prior work, our approach has two important advances: it handles hygiene, and it allows almost arbitrary rewriting rules (as opposed to restricted patterns). We do this in the context of a DAG representation of programs, rather than more traditional trees. Justin Pombrio, Shriram Krishnamurthi |
ICFP | 1 |
| 2014 | Resugaring: lifting evaluation sequences through syntactic sugarabstractSyntactic sugar is pervasive in language technology. It is used to shrink the size of a core language; to define domain-specific languages; and even to let programmers extend their language. Unfortunately, syntactic sugar is eliminated by transformation, so the resulting programs become unfamiliar to authors. Thus, it comes at a price: it obscures the relationship between the user's source program and the program being evaluated. Justin Pombrio, Shriram Krishnamurthi |
PLDI | 1 |
| 2012 | A tested semantics for getters, setters, and eval in JavaScriptabstractWe present S5, a semantics for the strict mode of the ECMAScript 5.1 (JavaScript) programming language. S5 shrinks the large source language into a manageable core through an implemented transformation. The resulting specification has been tested against real-world conformance suites for the language. This paper focuses on two aspects of S5: accessors (getters and setters) and eval. Since these features are complex and subtle in JavaScript, they warrant special study. Variations on both features are found in several other programming languages, so their study is likely to have broad applicability. Joe Gibbs Politz, Matthew J. Carroll, Benjamin S. Lerner, Justin Pombrio, Shriram Krishnamurthi |
DLS | 4 |