home > publications > ADM:ICFP:15

Analysing the Complexity of Functional Programs: Higher-Order Meets First-Order

Analysing the Complexity of Functional Programs: Higher-Order Meets First-Order
M. Avanzini and U. Dal Lago and G. Moser
Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, pages 152–164, 2015.

Abstract

We show how the complexity of higher-order functional programs can be analysed automatically by applying program transformations to a defunctionalised versions of them, and feeding the result to existing tools for the complexity analysis of first-order term rewrite systems. This is done while carefully analysing complexity preservation and reflection of the employed transformations such that the complexity of the obtained term rewrite system reflects on the complexity of the initial program. Further, we describe suitable strategies for the application of the studied transformations and provide ample experimental data for assessing the viability of our method.

Categories

Term Rewriting, Complexity Analysis, Functional Programming, Higher-Order, OCaml, Automation