The primary goal of exception mechanisms is to help ensure that when an operation fails, code that depends on the operation's successful completion is not executed (a property...
To improve software productivity, when constructing new software systems, programmers often reuse existing libraries or frameworks by invoking methods provided in their APIs. Those...
Abstract. Because Remote Procedure Calls do not compose efficiently, designers of distributed object systems use Data Transfer and Remote Fac?ade patterns to create large-granulari...
Ali Ibrahim, Yang Jiao, Eli Tilevich, William R. C...
Reusable APIs often dene usage protocols. We previously developed a sound modular type system that checks compliance with typestate-based protocols while aording a great deal of al...
We present a type system for checking object immutability, read-only references, and class immutability in an open or closed world. To allow object initialization outside object co...
Software frameworks impose constraints on how plugins may interact with them. Many of hese constraints involve multiple objects, are temporal, and depend on runtime values. Additi...
This paper presents a simple type system for thread-local data in Java. Classes and types are annotated to express thread-locality and unintended leaks are detected at compile-time...
Tobias Wrigstad, Filip Pizlo, Fadi Meawad, Lei Zha...
Refactoring tools allow the programmer to pretend they are working with a richer language where the behaviour of a program is automatically preserved during restructuring. In this ...
This work develops an integrated approach to the verification of behaviourally rich programs, founded directly on operational semantics. The power of the approach is demonstrated ...
In this paper, we show how pattern matching can be seen to arise from a proof term assignment for the focused sequent calculus. This use of the Curry-Howard correspondence allows ...