Effect Systems?

In this post, Andreas Rossberg alludes to the idea of an "effect system," which annotates programs with information about what impure operations various components perform. He also says that there has been "quite some research on [effect systems] in the past 15 years." However, I've been unable to find anything interesting with Google. Could someone please point me to some good research on effect systems?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Google for "type and effect systems" instead.

A lot of the work is related to region-based memory management

...so look at that literature, too.

I think the Lucassen and Gifford paper ("Polymorphic effect systems") is a good introduction, but there is a chapter in Pierce's ATTSPL on the whole matter as well.

Found PDF

Care of Google read the PDF (also available as HTML).

Found this

on citeseer and thought i might post it, the abstract states:

A Hoare-like logic is introduced for deriving `partial correctness assertions' of the form fffg p ffig, where ff; fi are unary predicates over some state space S and p is an expression over a recursive, non-uniform language containing global nondeterminism (+) and sequential composition (\Delta). This logic is (relatively) complete if only guarded recursion is considered. Key Words & Phrases: process algebra, side-effects, Hoare's logic, partial correctness assertions.

The paper's title is Process Algebra and Hoare's Logic and this is a link to it.

Monads and Effects (Benton, Hughes, Moggi)

For the archive's sake, Benton, Hughes and Moggi dedicated a chapter in their course lecture notes (chapter 9, page 47, from citeseer), which gives a high level and succinct introduction.

The Linear Bestiary

Wandering through linear types, capabilities, and regions by François Pottier is a good (but dense) survey of effects in the context of the related notions of capabilities and linear types.


You might find Disciple interesting: