JFLP: Volume 1997, Article 5

The Journal of Functional and Logic Programming

Volume 1997

Article 5

Published by The MIT Press . Copyright 1997 Massachusetts Institute of Technology.

----------------------------------------------------------------

Your institution may already be a subscriber to JFLP. If not, please subscribe for legitimate access to all journal articles.

----------------------------------------------------------------

On the Inference of Structured Recursive Effects with Subtyping

Mourad Debbabi, Zahia Aïdoud, and Ali Faour

30 June 1997

Abstract

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 is proved to be sound with respect to the typing rules.
The following versions of the article are available: You can find this article also on the ftp-server of The MIT Press (access may be faster from some sites).

----------------------------------------------------------------

Self citation

    @article{jflp97-05,
      author={Mourad Debbabi and Zahia A\"{\i}doud and Ali Faour},
      title={On the Inference of Structured Recursive Effects with Subtyping},
      journal={Journal of Functional and Logic Programming},
      volume={1997},
      number={5},
      publisher={The MIT Press},
      month={June},
      year={1997}
    }

----------------------------------------------------------------

*back to* Main page