Cost recurrences for DML programs

A cost recurrence describes an upper bound for the running time of a program in terms of the size of its input. Finding cost recurrences is a frequent intermediate step in complexity analysis, and this step requires an abstraction from data to data size. In this article, we use information contained...

Full description

Bibliographic Details
Published in:ACM SIGPLAN Notices
Main Author: Grobauer, Bernd
Format: Article in Journal/Newspaper
Language:English
Published: Association for Computing Machinery (ACM) 2001
Subjects:
DML
Online Access:http://dx.doi.org/10.1145/507669.507666
https://dl.acm.org/doi/pdf/10.1145/507669.507666
Description
Summary:A cost recurrence describes an upper bound for the running time of a program in terms of the size of its input. Finding cost recurrences is a frequent intermediate step in complexity analysis, and this step requires an abstraction from data to data size. In this article, we use information contained in dependent types to achieve such an abstraction: Dependent ML (DML), a conservative extension of ML, provides dependent types that can be used to associate data with size information, thus describing a possible abstraction. We automatically extract cost recurrences from first-order DML programs, guiding the abstraction from data to data size with information contained in DML type derivations.