Resource Usage Analysis of Logic Programs via Abstract Interpretation Using Sized Types
2014
We present a novel general resource analysis for logic programs based on sized types. Sized
types are representations that incorporate structural (shape) information and allow expressing
both lower and upper bounds on the size of a set of terms and their subterms at any position
and depth. They also allow relating the sizes of terms and subterms occurring at different
argument positions in logic predicates. Using these sized types, the resource analysis can infer
both lower and upper bounds on the resources used by all the procedures in a program
as functions on input term (and subterm) sizes, overcoming limitations of existing resource
analyses and enhancing their precision. Our new resource analysis has been developed within
the abstract interpretation framework, as an extension of the sized types abstract domain,
and has been integrated into the Ciao preprocessor, CiaoPP. The abstract domain operations
are integrated with the setting up and solving of recurrence equations for inferring both size
and resource usage functions. We show that the analysis is an improvement over the previous
resource analysis present in CiaoPP and compares well in power to state of the art systems.
Keywords:
- Correction
- Source
- Cite
- Save
- Machine Reading By IdeaReader
29
References
31
Citations
NaN
KQI