John Boyland

Position Paper: Handling “Out Of Memory” Errors ⋆ (2008)

John Boyland

Abstract. An “out of memory ” error can be catastrophic for a program, especially one written in a language such as Java that uses memory allocation frequently. Handling such an error can easily...

• 11:30-12:00 AspectLISA: an Aspect-Oriented Compiler Construction System Based on Attribute Grammars (2008)

On Language Descriptions, John Boyland, Anthony Sloane, Xiaoming Li, Daryl Shannon, Jabari Walker, ...

(LDTA ’06) are contained in this volume. These papers include both technical papers and tool demonstration papers. LDTA ’06 was a satellite event of the European Joint Conferences on Theory and

Organizers (2008)

John Boyland, Alex Buckley, Patrice Chalin, Dave Clarke, Paola Giannini, Marieke Huisman, ...

This report contains the papers presented at FTfJP ’07: 9th workshop on Formal

Organizers (2008)

John Boyland, Alex Buckley, Patrice Chalin, Dave Clarke, Paola Giannini, Marieke Huisman, ...

This report contains the papers presented at FTfJP ’07: 9th workshop on Formal

Formal techniques for Java-Like programs (2008)

Boyland, John, Leavens, Gary, Logozzo, Francesco, Poetzsch-Heffter, Arnd

Formal techniques can help analyze programs, precisely describe program behavior, and verify program properties. Newer languages such as Java and C# provide good platforms to bridge the gap between...

Type-Safe Compilation of Covariant Specialization: A Practical Case (2007)

John Boyland, Giuseppe Castagna

Despite its lack of type safety, some typed object-oriented languages use covariant specialization for methods. In this work, we show how one may modify the semantics of languages that use covariant...

An Object-Oriented Effects System Aaron (2007)

John Boyland

Abstract. An effects systems describes how state may be accessed during the execution of some program component. This information is used to assist reasoning about a program, such as determining...

Iterators can be independent “from” their collections (2007)

John Boyland

External iterators pose problems for alias control mechanisms: they have access to collection interals and yet are not accessible from the collection; they may be used in contexts that are unaware of...

Semantics of Fractional Permissions with Nesting (2007)

John Boyland

Fractional permissions use fractions to distinguish write access (1) from read access (any smaller fraction). Nesting (an extension of adoption) can be used to model object invariants and ownership....

Iterators can be independent “from” their collections (2007)

John Boyland

External iterators pose problems for alias control mechanisms: they have access to collection interals and yet are not accessible from the collection; they may be used in contexts that are unaware of...

Why we should not add readonly to Java (yet (2005)

John Boyland

In this paper, I examine some of reasons that “readonly ” style qualifiers have been proposed for Java, and also the principles behind the rules for these new qualifiers. I find that there is a...

Checking interference with fractional permissions (2003)

John Boyland

Abstract. We describe a type system for checking interference using the concept of linear capabilities (which we call “permissions”). Our innovations include the concept of “fractional ”...

The interdependence of effects and uniqueness (2001)

John Boyland

Abstract. A good object-oriented effects system gives the ability to define abstract regions (or “data groups”) of state within objects that can be extended in subclasses. Then one can specify...

Alias killing: Unique variables without destructive reads (1999)

John Boyland

An unshared object can be accessed without regard to possible conflicts with other parts of a system, whether concurrent or single-threaded. A unique variable (sometimes known as a "free...

Parasitic Methods: An Implementation of Multi-Methods for Java (1997)

John Boyland, Giuseppe Castagna

In an object-oriented programming language, method selection is (usually) done at run-time using the class of the receiver. Some object-oriented languages (such as CLOS) have multi-methods which...

Statically Checkable Pattern Abstractions (1997)

Manuel Fähndrich, John Boyland

Pattern abstractions increase the expressiveness of pattern matching, enabling the programmer to describe a broader class of regular forests with patterns. Furthermore, pattern abstractions support...