Results 1 
3 of
3
Algebraic Reconstruction of Types and Effects
, 1991
"... We present the first algorithm for reconstructing the types and effects of expressions in the presence of first class procedures in a polymorphic typed language. Effects are static descriptions of the dynamic behavior of expressions. Just as a type describes what an expression computes, an effect de ..."
Abstract

Cited by 109 (6 self)
 Add to MetaCart
We present the first algorithm for reconstructing the types and effects of expressions in the presence of first class procedures in a polymorphic typed language. Effects are static descriptions of the dynamic behavior of expressions. Just as a type describes what an expression computes, an effect describes how an expression computes. Types are more complicated to reconstruct in the presence of effects because the algebra of effects induces complex constraints on both effects and types. In this paper we show how to perform reconstruction in the presence of such constraints with a new algorithm called algebraic reconstruction, prove that it is sound and complete, and discuss its practical import. This research was supported by DARPA under ONR Contract N0001489J1988. 1
On the Inference of Structured Recursive Effects with Subtyping
, 1997
"... We address the type and effect inference in higherorder concurrent functional programming languages à la Concurrent ML. We present three extensions of the type and effect discipline. First, the discipline is extended to deal with infinite but recursive effects. Second, the inferred effects are stru ..."
Abstract
 Add to MetaCart
We address the type and effect inference in higherorder concurrent functional programming languages à la Concurrent ML. We present three extensions of the type and effect discipline. First, the discipline is extended to deal with infinite but recursive effects. Second, the inferred effects are structured, i.e., we keep track of the structure of effects (sequencing, choice, parallel composition, and recursion) instead of using an AC1I (associative, commutative, unitary, and idempotent) effect cumulation operator. Third, for the sake of flexibility, a subtyping relation is considered on the type and effect algebras. This is much more powerful than the classical subeffecting technique. This is meant to avoid type mismatches that may arise in some typing contexts between subexpressions that have similar type structure but different effect annotations. We present the language syntax together with its static semantics. The latter consists of the typing rules and an inference algorithm that...
Coeffects: Unified static analysis of contextdependence ⋆
"... Abstract. Monadic effect systems provide a unified way of tracking effects of computations, but there is no unified mechanism for tracking how computations rely on the environment in which they are executed. This is becoming an important problem for modern software – we need to track where distribut ..."
Abstract
 Add to MetaCart
Abstract. Monadic effect systems provide a unified way of tracking effects of computations, but there is no unified mechanism for tracking how computations rely on the environment in which they are executed. This is becoming an important problem for modern software – we need to track where distributed computations run, which resources a program uses and how they use other capabilities of the environment. We consider three examples of contextdependence analysis: liveness analysis, tracking the use of implicit parameters (similar to tracking of resource usage in distributed computation), and calculating caching requirements for dataflow programs. Informed by these cases, we present a unified calculus for tracking context dependence in functional languages together with a categorical semantics based on indexed comonads. We believe that indexed comonads are the right foundation for constructing contextaware languages and type systems and that following an approach akin to monads can lead to a widespread use of the concept.