@MISC{Greenhouse_anobject-oriented, author = {Aaron Greenhouse and John Boyland}, title = {An Object-Oriented Effects System}, year = {} }
Years of Citing Articles
Bookmark
OpenURL
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 whether data dependencies may exist between two computations. We define an effects system for Java that preserves the abstraction facilities that make objectoriented programming languages attractive. Specifically, a subclass may extend abstract regions of mutable state inherited from the superclass. The effects system also permits an object's state to contain the state of wholly-owned subsidiary objects. In this paper, we describe a set of annotations for declaring permitted effects in method headers, and show how the actual effects in a method body can be checked against the permitted effects. 1