Higher order demand propagation
Pape, Dirk ;  Universität <Berlin, Freie Universität> / Fachbereich Mathematik und Informatik

Main titleHigher order demand propagation
AuthorPape, Dirk
InstitutionUniversität <Berlin, Freie Universität> / Fachbereich Mathematik und Informatik
No. of Pages29 S.
Series Freie Universität Berlin, Fachbereich Mathematik und Informatik : Ser. B, Informatik ; 98,15
Classification (DDC)004 Data processing and Computer science
In this report a new backward strictness analysis for functional languages
is presented. It is called higher order demand propagation and is applicable
to a realistic non-strict functional language, which has a polymorphic
type system and supports higher order functions and user definable algebraic
data types. This report defines a semantics for higher order demand propagation
and relates it to the standard semantics of the functional language. Each
definition in a program is mapped to a demand propagator, which is a higher
order function, that propagates context demands to function arguments. The
strictness information deduced by the 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 the type information 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. An
approach to integrate the higher order demand propagation analysis into an
existing compiler for a lazy functional language is sketched at the end of the
If your browser can't open the file, please download the file first and then open it
FU DepartmentDepartment of Mathematics and Computer Science
Other affiliation(s)Institut für Informatik
Year of publication1998
Type of documentWorking paper
Terms of use/Rights Nutzungsbedingungen
Created at2009-04-14 : 08:23:36
Last changed2015-03-25 : 06:50:37
Static URLhttp://edocs.fu-berlin.de/docs/receive/FUDOCS_document_000000001559