Results 1 -
2 of
2
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 106 (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 N00014-89-J-1988. 1
On the Inference of Structured Recursive Effects with Subtyping
, 1997
"... We address the type and effect inference in higher-order 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 higher-order 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...

