Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Tim Disney

dblp:40/10167 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Logic in computer science › semantics
game semantics
0.212015
Game Semantics for Type Soundness · LICS 2015
Automated reasoning and model checking › automata-based verification
trace containment
0.212015
Game Semantics for Type Soundness · LICS 2015
Programming languages and type systems
type systems
0.112012
Cooperative types for controlling thread interference in Java · ISSTA 2012
Programming languages and type systems
extensibility
0.112011
Virtual values for language extension · OOPSLA 2011
Programming languages and type systems › language design
language extension
0.112011
Virtual values for language extension · OOPSLA 2011
Program analysis › static analysis
taint analysis
0.112011
Virtual values for language extension · OOPSLA 2011
Programming languages and type systems › lambda calculus
simply typed lambda calculus
0.112015
Game Semantics for Type Soundness · LICS 2015
Concurrent programming
concurrency bugs
0.012012
Cooperative types for controlling thread interference in Java · ISSTA 2012
Concurrent programming › concurrency bugs
thread interference
0.012012
Cooperative types for controlling thread interference in Java · ISSTA 2012
Systems and software security › information flow tracking
taint analysis
0.012011
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
YearPublicationVenuePosition
2016 Macrofication: Refactoring by Reverse Macro Expansion
Christopher Schuster, Tim Disney, Cormac Flanagan
ESOP2
2015 Game Semantics for Type Soundness
abstract
The 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
LICS1
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 ES5
abstract
Lisp 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
DLS1
2014 Dynamic detection of object capability violations through model checking
abstract
In 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
DLS2
2012 Cooperative types for controlling thread interference in Java
abstract
Multithreaded 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
ISSTA2
2011 Temporal higher-order contracts
abstract
Behavioral 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
ICFP1
2011 Virtual values for language extension
abstract
This 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
OOPSLA2