Demo Data from EDBT 2026 / reviewers in the wild / expert
Ian Voysey
dblp:183/6654
· DBLP profile ↗
3ranked-venue papers
0as first author
1since 2021 · last 2021
0000-0002-6041-2010ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 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 · 82% Program synthesis and code generation · 18% | |
| Human-computer interaction and pervasive computing
1 paper |
User interface design and tools · 100% |
Topics — the 6 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › language semantics
dynamic semantics |
0.4 | 1 | 2019 | Live functional programming with typed holes · Proc. ACM Program. Lang. 2019 |
Programming languages and type systems › type systems
gradual typing |
0.4 | 1 | 2019 | Live functional programming with typed holes · Proc. ACM Program. Lang. 2019 |
Programming languages and type systems › type checking
bidirectional type checking |
0.3 | 1 | 2017 | Hazelnut: a bidirectionally typed structure editor calculus · POPL 2017 |
Programming languages and type systems › programming environment
structure editors |
0.3 | 1 | 2017 | Hazelnut: a bidirectionally typed structure editor calculus · POPL 2017 |
User interface design and tools › interactive graphics system
graphical editing |
0.1 | 1 | 2021 | Filling typed holes with live GUIs · PLDI 2021 |
Programming languages and type systems › type systems
type soundness |
0.1 | 1 | 2019 | Live functional programming with typed holes · Proc. ACM Program. Lang. 2019 |
Methods — techniques the papers use, named apart from their topics
mechanized metatheory · 1.4simply typed calculus · 1.0macro expansion · 1.0agda proof assistant · 0.4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Filling typed holes with live GUIsabstractText editing is powerful, but some types of expressions are more naturally represented and manipulated graphically. Examples include expressions that compute colors, music, animations, tabular data, plots, diagrams, and other domain-specific data structures. This paper introduces live literals, or livelits, which allow clients to fill holes of types like these by directly manipulating a user-defined GUI embedded persistently into code. Uniquely, livelits are compositional: a livelit GUI can itself embed spliced expressions, which are typed, lexically scoped, and can in turn embed other livelits. Livelits are also uniquely live: a livelit can provide continuous feedback about the run-time implications of the client’s choices even when splices mention bound variables, because the system continuously gathers closures associated with the hole that the livelit is filling. We integrate livelits into Hazel, a live hole-driven programming environment, and describe case studies that exercise these novel capabilities. We then define a simply typed livelit calculus, which specifies how livelits operate as live graphical macros. The metatheory of macro expansion has been mechanized in Agda. Cyrus Omar, David Moon, Andrew Blinn, Ian Voysey, Nick Collins, Ravi Chugh |
PLDI | 4 |
| 2019 | Live functional programming with typed holesabstractLive programming environments aim to provide programmers (and sometimes audiences) with continuous feedback about a program's dynamic behavior as it is being edited. The problem is that programming languages typically assign dynamic meaning only to programs that are complete, i.e. syntactically well-formed and free of type errors. Consequently, live feedback presented to the programmer exhibits temporal or perceptive gaps. This paper confronts this "gap problem" from type-theoretic first principles by developing a dynamic semantics for incomplete functional programs, starting from the static semantics for incomplete functional programs developed in recent work on Hazelnut. We model incomplete functional programs as expressions with holes, with empty holes standing for missing expressions or types, and non-empty holes operating as membranes around static and dynamic type inconsistencies. Rather than aborting when evaluation encounters any of these holes as in some existing systems, evaluation proceeds around holes, tracking the closure around each hole instance as it flows through the remainder of the program. Editor services can use the information in these hole closures to help the programmer develop and confirm their mental model of the behavior of the complete portions of the program as they decide how to fill the remaining holes. Hole closures also enable a fill-and-resume operation that avoids the need to restart evaluation after edits that amount to hole filling. Formally, the semantics borrows machinery from both gradual type theory (which supplies the basis for handling unfilled type holes) and contextual modal type theory (which supplies a logical basis for hole closures), combining these and developing additional machinery necessary to continue evaluation past holes while maintaining type safety. We have mechanized the metatheory of the core calculus, called Hazelnut Live, using the Agda proof assistant. We have also implemented these ideas into the Hazel programming environment. The implementation inserts holes automatically, following the Hazelnut edit action calculus, to guarantee that every editor state has some (possibly incomplete) type. Taken together with this paper's type safety property, the result is a proof-of-concept live programming environment where rich dynamic feedback is truly available without gaps, i.e. for every reachable editor state. Cyrus Omar, Ian Voysey, Ravi Chugh, Matthew A. Hammer |
Proc. ACM Program. Lang. | 2 |
| 2017 | Hazelnut: a bidirectionally typed structure editor calculusabstractStructure editors allow programmers to edit the tree structure of a program directly. This can have cognitive benefits, particularly for novice and end-user programmers. It also simplifies matters for tool designers, because they do not need to contend with malformed program text. Cyrus Omar, Ian Voysey, Michael Hilton 0001, Jonathan Aldrich, Matthew A. Hammer |
POPL | 2 |