Abstract
AbstractMany applications require conformance with specifications that constrain the use of resources, such as execution time, energy, bandwidth, etc. We present a configurable framework for static resource usage verification where specifications can include data size-dependent resource usage functions, expressing both lower and upper bounds. Ensuring conformance with respect to such specifications is an undecidable problem. Therefore, to statically check such specifications, our framework infers the same type of resource usage functions, which safely approximate the actual resource usage of the program, and compares them against the specification. We review how this framework supports several languages and compilation output formats by translating them to an intermediate representation based on Horn clauses and using the configurability of the framework to describe the resource semantics of the input language. We provide a detailed formalization and extend the framework so that both resource usage specification and analysis/verification output can include preconditions expressing intervals for the input data sizes for which assertions are intended to hold, proved, or disproved. Most importantly, we also extend the classes of functions that can be checked. We also report on and provide results from an implementation within the Ciao/CiaoPP framework, as well as on a practical tool built by instantiating this framework for the verification of energy consumption specifications for imperative/embedded programs. Finally, we show as an example how embedded software developers can use this tool, in particular, for determining values for program parameters that ensure meeting a given energy budget while minimizing the loss in quality of service.
Publisher
Cambridge University Press (CUP)
Subject
Artificial Intelligence,Computational Theory and Mathematics,Hardware and Architecture,Theoretical Computer Science,Software
Reference46 articles.
1. Tobin-Hochstadt S. and Van Horn D. 2012. Higher-order symbolic execution via contracts. In Proc. of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'12). ACM, 537–554.
2. Puebla G. , Bueno F. and Hermenegildo M. V. 2000b. Combined static and dynamic assertion-based debugging of constraint logic programs. In Proc. of Logic-based Program Synthesis and Transformation (LOPSTR'99). Number 1817 in Lecture Notes in Computer Science. Springer-Verlag, 273–292.
3. Puebla G. , Bueno F. and Hermenegildo M. V. 2000a. An assertion language for constraint logic programs. In Analysis and Visualization Tools for Constraint Programming, P. Deransart , M. V. Hermenegildo , and J. Maluszynski , Eds. Number 1870 in Lecture Notes in Computer Science. Springer-Verlag, 23–61.
4. Navas J. , Méndez-Lojo M. and Hermenegildo M. 2008. Safe upper-bounds inference of energy consumption for Java Bytecode applications. In Proc of The 6th NASA Langley Formal Methods Workshop (LFM'08). 29–32. Extended Abstract.
5. Méndez-Lojo M. , Navas J. and Hermenegildo M. 2007. A flexible (C)LP-based approach to the analysis of object-oriented programs. In Proc. of 17th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'07). Number 4915 in Lecture Notes in Computer Science. Springer-Verlag, 154–168.
Cited by
18 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献