Open Effects







Deposit Papers 


Long, Yuheng (2012) Open Effects. Technical Report 12-02, Computer Science, Iowa State University.

Full text available as:HTML

There is a later version of this eprint available: Click here to view it.


Open world assumption is an important design decision for modern object-oriented languages --- it allows extensibility in program design. Type-and-effect systems are also valuable for these languages, e.g. they can help reason about concurrent OO programs. Open world assumption, however, makes the design of a type-and-effect system challenging for an OO language. Main problem is with the computation of the effects of a dynamically dispatched method call, because all possible dynamic types are not known in advance. Previous research has proposed asking programmers for effect annotations that give an upper bound on the effects of a dynamically dispatched method call. This work describes an easier approach for programmers, albeit with some runtime overhead compared to previous work, which is based on the novel notion of open effects, effects that are optimistically assumed to satisfy the effect-based property of interest. We describe a sound type-and-effect system with open effects which has two parts: a static part that takes effects of dynamically dispatched calls with certain special references as an open effect; and a dynamic part that manages dynamic effects as these special references change and verifies that the optimistic assumptions about open effects hold. This system is implemented in the OpenJDK compiler and its utility is tested by applying it to verify non(interference) of concurrent tasks.

Keywords:type-and-effect, open effects, optimistic concurrency
Subjects:Computer Systems Organization: COMPUTER SYSTEM IMPLEMENTATION
Software: PROGRAMMING TECHNIQUES (E): Concurrent Programming
Software: PROGRAMMING TECHNIQUES (E): Object-oriented Programming
Software: PROGRAMMING LANGUAGES: Formal Definitions and Theory (D.2.1, F.3.1-2, F.4.2-3)
Software: PROGRAMMING LANGUAGES: Language Constructs and Features (E.2)
Computing Methodologies: SYMBOLIC AND ALGEBRAIC MANIPULATION: Languages and Systems (D.3.2-3, F.2.2)
ID code:00000689
Deposited by:Yuheng Long

Available Versions of This Paper

Contact site administrator at: