EDBT 2026 Demo / reviewers in the wild / expert
Tim Disney
dblp:40/10167
· DBLP profile ↗
8ranked-venue papers
3as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 2 first-authorTheory of computation · 1 · 1 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.
| Software engineering, system software, and programming languages
3 papers |
Programming languages and type systems · 68% Program analysis · 19% Concurrent programming · 13% | |
| Theoretical computer science
1 paper |
Logic in computer science · 50% Automated reasoning and model checking · 50% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 10 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Logic in computer science › semantics
game semantics |
0.2 | 1 | 2015 | Game Semantics for Type Soundness · LICS 2015 |
Automated reasoning and model checking › automata-based verification
trace containment |
0.2 | 1 | 2015 | Game Semantics for Type Soundness · LICS 2015 |
Programming languages and type systems
type systems |
0.1 | 1 | 2012 | Cooperative types for controlling thread interference in Java · ISSTA 2012 |
Programming languages and type systems
extensibility |
0.1 | 1 | 2011 | Virtual values for language extension · OOPSLA 2011 |
Programming languages and type systems › language design
language extension |
0.1 | 1 | 2011 | Virtual values for language extension · OOPSLA 2011 |
Program analysis › static analysis
taint analysis |
0.1 | 1 | 2011 | Virtual values for language extension · OOPSLA 2011 |
Programming languages and type systems › lambda calculus
simply typed lambda calculus |
0.1 | 1 | 2015 | Game Semantics for Type Soundness · LICS 2015 |
Concurrent programming
concurrency bugs |
0.0 | 1 | 2012 | Cooperative types for controlling thread interference in Java · ISSTA 2012 |
Concurrent programming › concurrency bugs
thread interference |
0.0 | 1 | 2012 | Cooperative types for controlling thread interference in Java · ISSTA 2012 |
Systems and software security › information flow tracking
taint analysis |
0.0 | 1 | 2011 | Virtual values for language extension · OOPSLA 2011 |
Methods — techniques the papers use, named apart from their topics
trap-based intercession · 0.2formal semantics · 0.2yield annotations · 0.1type system · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Macrofication: Refactoring by Reverse Macro Expansion
Christopher Schuster, Tim Disney, Cormac Flanagan |
ESOP | 2 |
| 2015 | Game Semantics for Type SoundnessabstractThe key idea of game semantics is that a term can interact with its enclosing context via various events, such as function calls and returns. A trace is a sequence of such interaction events. The meaning of the term is then naturally represented by the set of all event traces that the term can generate. Game semantics allows us to define the meaning of both expressions and types in the same domain which enables an interesting alternative to subject reduction for proving type soundness. This paper uses game semantics to define the meaning of and verify type soundness for a sequence of programming languages, starting with a functional sequential language (the call-by-value simply-typed lambda calculus), and then extending that proof with sub typing, side effects, control effects, and concurrency. These proofs are reasonably short and fairly semantic in structure, focusing on the relationship between the meanings of each term and its corresponding type. In particular, we show that the typing and sub typing relations are both conservative approximations of alternating trace containment. Tim Disney, Cormac Flanagan |
LICS | 1 |
| 2015 | Cooperative types for controlling thread interference in Java
Jaeheon Yi, Tim Disney, Stephen N. Freund, Cormac Flanagan |
Sci. Comput. Program. | 2 |
| 2014 | Sweeten your JavaScript: hygienic macros for ES5abstractLisp and Scheme have demonstrated the power of macros to enable programmers to evolve and craft languages. In languages with more complex syntax, macros have had less success. In part, this has been due to the difficulty in building expressive hygienic macro systems for such languages. JavaScript in particular presents unique challenges for macro systems due to ambiguities in the lexing stage that force the JavaScript lexer and parser to be intertwined. Tim Disney, Nathan Faubion, David Herman, Cormac Flanagan |
DLS | 1 |
| 2014 | Dynamic detection of object capability violations through model checkingabstractIn this paper we present a new tool called DOCaT (Dynamic Object Capability Tracer), a model checker for JavaScript that detects capability leaks in an object capability system. DOCaT includes an editor that highlights the sections of code that can be potentially transferred to untrusted third-party code along with a trace showing how the code could be leaked in an actual execution. This code highlighting provides a simple way of visualizing the references untrusted code potentially has access to and helps programmers to discover if their code is leaking more capabilities then required. DOCaT is implemented using a combination of source code rewriting (using Sweet.js, a JavaScript macro system), dynamic behavioral intercession (Proxies, introduced in ES6, the most recent version of JavaScript), and model checking. Together these methods are able to locate common ways for untrusted code to elevate its authority. Dustin Rhodes, Tim Disney, Cormac Flanagan |
DLS | 2 |
| 2012 | Cooperative types for controlling thread interference in JavaabstractMultithreaded programs are notoriously prone to unintended interference between concurrent threads. To address this problem, we argue that yield annotations in the source code should document all thread interference, and we present a type system for verifying the absence of undocumented interference in Java programs. Under this type system, well-typed programs behave as if context switches occur only at yield annotations. Thus, well-typed programs can be understood using intuitive sequential reasoning, except where yield annotations remind the programmer to account for thread interference. Jaeheon Yi, Tim Disney, Stephen N. Freund, Cormac Flanagan |
ISSTA | 2 |
| 2011 | Temporal higher-order contractsabstractBehavioral contracts are embraced by software engineers because they document module interfaces, detect interface violations, and help identify faulty modules (packages, classes, functions, etc). This paper extends prior higher-order contract systems to also express and enforce temporal properties, which are common in software systems with imperative state, but which are mostly left implicit or are at best informally specified. The paper presents both a programmatic contract API as well as a temporal contract language, and reports on experience and performance results from implementing these contracts in Racket. Tim Disney, Cormac Flanagan, Jay McCarthy |
ICFP | 1 |
| 2011 | Virtual values for language extensionabstractThis paper focuses on extensibility, the ability of a programmer using a particular language to extend the expressiveness of that language. This paper explores how to provide an interesting notion of extensibility by virtualizing the interface between code and data. A virtual value is a special value that supports behavioral intercession. When a primitive operation is applied to a virtual value, it invokes a trap on that virtual value. A virtual value contains multiple traps, each of which is a user-defined function that describes how that operation should behave on that value. This paper formalizes the semantics of virtual values, and shows how they enable the definition of a variety of language extensions, including additional numeric types; delayed evaluation; taint tracking; contracts; revokable membranes; and units of measure. We report on our experience implementing virtual values for Javascript within an extension for the Firefox browser. Thomas H. Austin, Tim Disney, Cormac Flanagan |
OOPSLA | 2 |