Space cost analysis using sized types
Abstract
Programming resource-sensitive systems, such as real-time embedded systems, requires guaranteeing both the functional correctness of computations and also that time and space usage fits within constraints imposed by hardware limits or the environment. Functional programming languages have proved very good at meeting the former logical kind of guarantees but not the latter resource guarantees.
This thesis contributes to demonstrate the applicability of functional programming
in resource-sensitive systems with an automatic program analysis for obtaining guaranteed upper bounds on dynamic space usage of functional programs.
Our analysis is developed for a core subset of Hume, a domain-specific functional
language targeting resource-sensitive systems (Hammond et al. 2007), and presented
as a type and effect system that builds on previous sized type systems (Hughes et al.
1996, Chin and Khoo 2001) and effect systems for costs (Dornic et al. 1992, Reistad
and Giord 1994, Hughes and Pareto 1999). It extends previous approaches by using
abstract interpretation techniques to automatically infer linear approximations of the sizes of recursive data types and the stack and heap costs of recursive functions.
The correctness of the analysis is formally proved with respect to an operational
semantics for the language and an inference algorithm that automatically reconstructs
size and cost bounds is presented.
A prototype implementation of the analysis and operational semantics has been
constructed and used to experimentally assess the quality of the cost bounds with some examples, including implementations of textbook functional programming algorithms and simplified embedded systems.
Type
Thesis, PhD Doctor of Philosophy
Rights
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
http://creativecommons.org/licenses/by-nc-sa/3.0/
Collections
Except where otherwise noted within the work, this item's licence for re-use is described as Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.