An Object-Oriented Effects System

  • Authors:
  • Aaron Greenhouse;John Boyland

  • Affiliations:
  • -;-

  • Venue:
  • ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

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 object-oriented 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.