Higher Order Demand Propagation

  • Authors:
  • Dirk Pape

  • Affiliations:
  • -

  • Venue:
  • IFL '98 Selected Papers from the 10th International Workshop on 10th International Workshop
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

A new denotational semantics is introduced for realistic nonstrict functional languages, which have a polymorphic type system and support higher order functions and user definable algebraic data types. It maps each function definition to a demand propagator, which is a higher order function, that propagates context demands to function arguments. The relation of this "higher order demand propagation semantics" to the standard semantics is explained and it is used to define a backward strictness analysis. The strictness information deduced by this analysis is very accurate, because demands can actually be constructed during the analysis. These demands conform better to the analysed functions than abstract values, which are constructed alone with respect to types like in other existing strictness analyses. The richness of the semantic domains of higher order demand propagation makes it possible to express generalised strictness information for higher order functions even across module boundaries.