EDBT 2026 Demo / reviewers in the wild / expert
Zachary Palmer
dblp:70/10322
· DBLP profile ↗
8ranked-venue papers
5as first author
1since 2021 · last 2024
0000-0003-2286-1189ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 5 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 |
Programming languages and type systems · 69% Program analysis · 30% Compilers and program optimization · 1% |
Topics — the 7 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems
functional programming |
0.8 | 1 | 2024 | Intensional Functions · Proc. ACM Program. Lang. 2024 |
Programming languages and type systems › language semantics › formal semantics
operational semantics |
0.8 | 1 | 2024 | Intensional Functions · Proc. ACM Program. Lang. 2024 |
Programming languages and type systems
type systems |
0.8 | 1 | 2024 | Intensional Functions · Proc. ACM Program. Lang. 2024 |
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis |
0.4 | 1 | 2019 | Higher-order Demand-driven Program Analysis · ACM Trans. Program. Lang. Syst. 2019 |
Program analysis › data flow analysis
flow-sensitive analysis |
0.4 | 1 | 2019 | Higher-order Demand-driven Program Analysis · ACM Trans. Program. Lang. Syst. 2019 |
Programming languages and type systems › computational effects
monads |
0.2 | 1 | 2024 | Intensional Functions · Proc. ACM Program. Lang. 2024 |
Programming languages and type systems
metaprogramming |
0.1 | 1 | 2011 | Backstage Java: making a difference in metaprogramming · OOPSLA 2011 |
Methods — techniques the papers use, named apart from their topics
type soundness proof · 0.8operational semantics · 0.8defunctionalization · 0.8pushdown automaton · 0.4demand-driven lookup · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Intensional FunctionsabstractFunctions in functional languages have a single elimination form — application — and cannot be compared, hashed, or subjected to other non-application operations. These operations can be approximated via defunctionalization: functions are replaced with first-order data and calls are replaced with invocations of a dispatch function. Operations such as comparison may then be implemented for these first-order data to approximate e.g. deduplication of continuations in algorithms such as unbounded searches. Unfortunately, this encoding is tedious, imposes a maintenance burden, and obfuscates the affected code. We introduce an alternative in intensional functions , a language feature which supports the definition of non-application operations in terms of a function’s definition site and closure-captured values. First-order data operations may be defined on intensional functions without burdensome code transformation. We give an operational semantics and type system and prove their formal properties. We further define intensional monads , whose Kleisli arrows are intensional functions, enabling monadic values to be similarly subjected to additional operations. Zachary Palmer, Nathaniel Wesley Filardo, Ke Wu 0015 |
Proc. ACM Program. Lang. | 1 |
| 2020 | A Set-Based Context Model for Program Analysis
Leandro Facchinetti, Zachary Palmer, Scott F. Smith 0001, Ke Wu 0015, Ayaka Yorihiro |
APLAS | 2 |
| 2020 | Higher-order demand-driven symbolic evaluationabstractSymbolic backwards execution (SBE) is a useful variation on standard forward symbolic evaluation; it allows a symbolic evaluation to start anywhere in the program and proceed by executing in reverse to the program start. SBE brings goal-directed reasoning to symbolic evaluation and has proven effective in e.g. automated test generation for imperative languages. In this paper we define DDSE, a novel SBE which operates on a functional as opposed to imperative language; furthermore, it is defined as a natural extension of a backwards-executing interpreter. We establish the soundness of DDSE and define a test generation algorithm for this toy language. We report on an initial reference implementation to confirm the correctness of the principles. Zachary Palmer, Theodore Park, Scott F. Smith 0001, Shiwei Weng |
Proc. ACM Program. Lang. | 1 |
| 2019 | Higher-order Demand-driven Program AnalysisabstractDeveloping accurate and efficient program analyses for languages with higher-order functions is known to be difficult. Here we define a new higher-order program analysis, Demand-Driven Program Analysis (DDPA), which extends well-known demand-driven lookup techniques found in first-order program analyses to higher-order programs. This task presents several unique challenges to obtain good accuracy, including the need for a new method for demand-driven lookup of non-local variable values. DDPA is flow- and context-sensitive and provably polynomial-time. To efficiently implement DDPA, we develop a novel pushdown automaton metaprogramming framework, the Pushdown Reachability automaton. The analysis is formalized and proved sound, and an implementation is described. Leandro Facchinetti, Zachary Palmer, Scott F. Smith 0001 |
ACM Trans. Program. Lang. Syst. | 2 |
| 2017 | Relative Store Fragments for Singleton Abstraction
Leandro Facchinetti, Zachary Palmer, Scott F. Smith 0001 |
SAS | 2 |
| 2016 | Higher-Order Demand-Driven Program AnalysisabstractWe explore a novel approach to higher-order program analysis that brings ideas of on-demand lookup from first-order CFL-reachability program analyses to higher-order programs. The analysis needs to produce only a control-flow graph; it can derive all other information including values of variables directly from the graph. Several challenges had to be overcome, including how to build the control-flow graph on-the-fly and how to deal with non-local variables in functions. The resulting analysis is flow- and context-sensitive with a provable polynomial-time bound. The analysis is formalized and proved correct and terminating, and an initial implementation is described. Zachary Palmer, Scott F. Smith 0001 |
ECOOP | 1 |
| 2014 | Types for Flexible Objects
Zachary Palmer, Pottayil Harisanker Menon, Alexander Rozenshteyn, Scott F. Smith 0001 |
APLAS | 1 |
| 2011 | Backstage Java: making a difference in metaprogrammingabstractWe propose Backstage Java (BSJ), a Java language extension which allows algorithmic, contextually-aware generation and transformation of code. BSJ explicitly and concisely represents design patterns and other encodings by employing compile-time metaprogramming: a practice in which the programmer writes instructions which are executed over the program's AST during compilation. While compile-time metaprogramming has been successfully used in functional languages such as Template Haskell, a number of language properties (scope, syntactic structure, mutation, etc.) have thus far prevented this theory from translating to the imperative world. BSJ uses the novel approach of difference-based metaprogramming to provide an imperative programming style amenable to the Java community and to enforce that metaprograms are consistent and semantically unambiguous. To make the feasibility of BSJ metaprogramming evident, we have developed a compiler implementation and numerous working code examples. Zachary Palmer, Scott F. Smith 0001 |
OOPSLA | 1 |