• Publications
  • Influence
Uniqueness and reference immutability for safe parallelism
TLDR
This paper presents a type system to restrict the updates to memory to prevent these unintended side-effects of concurrent programming, and provides a novel combination of immutable and unique types that ensures safe parallelism and deterministic execution.
Java UI : Effects for Controlling UI Object Access
TLDR
A polymorphic type and effect system that prevents non-UI threads from accessing UI objects or invoking UI-thread-only methods and describes code patterns the effect system handles less gracefully or not at all, which the author believes offers lessons for those applying other effect systems to existing code.
Generating comments from source code with CCGs
TLDR
This paper presents a method to generate informative comments directly from the source code using general-purpose techniques from natural language processing, allowing comment generation to proceed by search from declarative descriptions of program text.
Verifying Concurrent Programs by Controlling Alias Interference
Verifying Concurrent Programs by Controlling Alias Interference
Type inference for static compilation of JavaScript
TLDR
A type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods is presented, expressed in a simple constraint language, designed to leverage off-the-shelf fixed point solvers.
Rely-guarantee references for refinement types over aliased mutable data
TLDR
This work presents a new type system approach to reasoning about safe assumptions in the presence of aliasing and side effects, unifying ideas from reference immutability type systems and rely-guarantee program logics.
Static lock capabilities for deadlock freedom
TLDR
The technique is formalized as a type-and-effect system, demonstrated it handles realistic challenging idioms, and use syntactic techniques to show it soundly prevents deadlock.
Type Inference for Static Compilation of JavaScript (Extended Version)
TLDR
A type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods is presented, expressed in a simple constraint language, designed to leverage off-the-shelf fixed point solvers.
Verifying Invariants of Lock-Free Data Structures with Rely-Guarantee and Refinement Types
TLDR
A new way of proving invariants of fine-grained concurrent data structures: applying rely-guarantee reasoning to references in the concurrent setting is proposed, which avoids sealing concurrent data structure implementations and can interact safely with unverified imperative code.
A Generic Approach to Flow-Sensitive Polymorphic Effects
TLDR
It is shown that effect quantales provide a free, general notion of iterating a sequential effect, and that for systems the authors consider the derived iteration agrees with the manually designed iteration operators in prior work, which provides guidance on non-obvious points of designing order-sensitive effect systems.
...
...