Results 1 -
4 of
4
Expansion: the Crucial Mechanism for Type Inference with Intersection Types: Survey and Explanation
- In: (ITRS ’04
, 2005
"... The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying ..."
Abstract
-
Cited by 11 (4 self)
- Add to MetaCart
The operation of expansion on typings was introduced at the end of the 1970s by Coppo, Dezani, and Venneri for reasoning about the possible typings of a term when using intersection types. Until recently, it has remained somewhat mysterious and unfamiliar, even though it is essential for carrying out compositional type inference. The fundamental idea of expansion is to be able to calculate the effect on the final judgement of a typing derivation of inserting a use of the intersection-introduction typing rule at some (possibly deeply nested) position, without actually needing to build the new derivation.
Types, Potency, and Idempotency: Why Nonlinearity and Amnesia Make a Type System Work
- In Proc. 9th Int’l Conf. Functional Programming
, 2004
"... Useful type inference must be faster than normalization. Otherwise, you could check safety conditions by running the program. We analyze the relationship between bounds on normalization and type inference. We show how the success of type inference is fundamentally related to the amnesia of the type ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Useful type inference must be faster than normalization. Otherwise, you could check safety conditions by running the program. We analyze the relationship between bounds on normalization and type inference. We show how the success of type inference is fundamentally related to the amnesia of the type system: the nonlinearity by which all instances of a variable are constrained to have the same type.
On the Safety of Nöcker’s Strictness Analysis
- FRANKFURT AM MAIN, GERMANY
"... Abstract. This paper proves correctness of Nöcker’s method of strictness analysis, implemented for Clean, which is an effective way for strictness analysis in lazy functional languages based on their operational semantics. We improve upon the work of Clark, Hankin and Hunt, which addresses correctne ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
Abstract. This paper proves correctness of Nöcker’s method of strictness analysis, implemented for Clean, which is an effective way for strictness analysis in lazy functional languages based on their operational semantics. We improve upon the work of Clark, Hankin and Hunt, which addresses correctness of the abstract reduction rules. Our method also addresses the cycle detection rules, which are the main strength of Nöcker’s strictness analysis. We reformulate Nöcker’s strictness analysis algorithm in a higherorder lambda-calculus with case, constructors, letrec, and a nondeterministic choice operator ⊕ used as a union operator. Furthermore, the calculus is expressive enough to represent abstract constants like Top or Inf. The operational semantics is a small-step semantics and equality of expressions is defined by a contextual semantics that observes termination of expressions. The correctness of several reductions is proved using a context lemma and complete sets of forking and commuting diagrams.
Exact Intersection Typing Inference and Call-by-Name Evaluation
, 2004
"... It is known that inferring an exact intersection typing for a #-term (i.e., a typing where the intersection operator is not idempotent) is equivalent to strong #-normalisation of that term. Intersection typing derivations can provide very precise information about program behaviour, making them --- ..."
Abstract
- Add to MetaCart
It is known that inferring an exact intersection typing for a #-term (i.e., a typing where the intersection operator is not idempotent) is equivalent to strong #-normalisation of that term. Intersection typing derivations can provide very precise information about program behaviour, making them --- in principle --- an attractive framework for program analysis. The recent innovation of expansion variables greatly simplifies the production of such typing derivations, allows their production for all #-normalising terms and allows inference to be done in a truly compositional way --- a big advantage for programs where components are updated frequently and separately. We present a new, truly compositional, exact intersection typing inference procedure for the recent, expansion variable-based, System E framework. Inference uses a confluent rewrite system to solve instances of a unification problem with expansion variables. Moreover, we explain precisely how the inferred typing-derivation describes the evaluation of the term, showing that the typing derivation most accurately describes its call-by-name evaluation via a linear transformation. For other evaluation strategies, di#erent inference algorithms will be required. 1

