Results 1  10
of
11
Bound Analysis of Imperative Programs with the Sizechange Abstraction
 IN: 18TH INT. STATIC ANALYSIS SYMPOSIUM
, 2011
"... The sizechange abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this paper, we demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imper ..."
Abstract

Cited by 19 (4 self)
 Add to MetaCart
(Show Context)
The sizechange abstraction (SCA) is an important program abstraction for termination analysis, which has been successfully implemented in many tools for functional and logic programs. In this paper, we demonstrate that SCA is also a highly effective abstract domain for the bound analysis of imperative programs. We have implemented a bound analysis tool based on SCA for imperative programs. We abstract programs in a pathwise and context dependent manner, which enables our tool to analyze realworld programs effectively. Our work shows that SCA captures many of the essential ideas of previous termination and bound analysis and goes beyond in a conceptually simpler framework.
Convex Invariant Refinement by Control Node Splitting: a Heuristic Approach
"... To improve the accuracy of invariants found when analyzing a transition system, we introduce an original rewriting heuristic of control flow graphs, based on a control node splitting algorithm. The transformation preserves the program behaviors, whilst allowing a finer analysis. interpretation tool, ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
To improve the accuracy of invariants found when analyzing a transition system, we introduce an original rewriting heuristic of control flow graphs, based on a control node splitting algorithm. The transformation preserves the program behaviors, whilst allowing a finer analysis. interpretation tool, using 71 test cases published by Gonnord, Gulwani, Halbwachs, Jeannet & al. The number of invariants found by these tools goes up from 28 to 69 for PIPS and from 44 to 62 for Aspic when our heuristics is used as a preprocessing step. The total execution time of PIPS is only marginally increased, going up from 76 to 103 s, thus showing the practical interest of our optimization technique.
Loop Leaping with Closures
"... Abstract. Loop leaping is the colloquial name given to a form of program analysis in which summaries are derived for nested loops starting from the innermost loop and proceeding in a bottomup fashion considering one more loop at a time. Loop leaping contrasts with classical approaches to finding lo ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Loop leaping is the colloquial name given to a form of program analysis in which summaries are derived for nested loops starting from the innermost loop and proceeding in a bottomup fashion considering one more loop at a time. Loop leaping contrasts with classical approaches to finding loop invariants that are iterative; loop leaping is compositional requiring each stratum in the nest of loops to be considered exactly once. The approach is attractive in predicate abstraction where disjunctive domains are increasingly used that present long ascending chains. This paper proposes a simple and an efficient approach for loop leaping for these domains based on viewing loops as closure operators. 1
Management, Performance
"... Resource management in virtualized systems remains a key challenge where the applications have dynamically changing workloads and the virtual machines (VMs) compete for the shared resources in a convolved manner. To address this challenge, this paper proposes a new resource management approach based ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Resource management in virtualized systems remains a key challenge where the applications have dynamically changing workloads and the virtual machines (VMs) compete for the shared resources in a convolved manner. To address this challenge, this paper proposes a new resource management approach based on Fuzzy Model Predictive Control (FMPC) which can effectively capture the nonlinear behaviors in VM resource usages through fuzzy modeling and quickly adapt to the changes in the virtualized system through predictive control. This approach is capable of optimizing the VMtoresource allocations according to highlevel service differentiation or revenue maximization objectives. A prototype of this approach was implemented for Xenbased VM systems and evaluated using a typical online transaction benchmark (RUBiS). The results demonstrate that the proposed approach can efficiently allocate CPU resource to multiple VMs to achieve application or systemlevel performance objective.
Static Analysis of ControlCommand Systems  FloatingPoint and Integer Invariants
, 2015
"... ..."
Static detection of asymptotic performance bugs in collection traversals
 In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, 369–378. PLDI 2015
, 2015
"... Abstract This paper identifies and formalizes a prevalent class of asymptotic performance bugs called redundant traversal bugs and presents a novel static analysis for automatically detecting them. We evaluate our technique by implementing it in a tool called CLARITY and applying it to widelyused ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract This paper identifies and formalizes a prevalent class of asymptotic performance bugs called redundant traversal bugs and presents a novel static analysis for automatically detecting them. We evaluate our technique by implementing it in a tool called CLARITY and applying it to widelyused software packages such as the Google Core Collections Library, the Apache Common Collections, and the Apache Ant build tool. Across 1.6M lines of Java code, CLARITY finds 92 instances of redundant traversal bugs, including 72 that have never been previously reported, with just 5 false positives. To evaluate the performance impact of these bugs, we manually repair these programs and find that for an input size of 50,000, all repaired programs are at least 2.45× faster than their original code.
Proof Appendix for Loop Leaping with Closures
, 2012
"... Abstract Loop leaping is the colloquial name given to a form of program analysis in which summaries are derived for nested loops starting from the innermost loop and proceeding in a bottomup fashion considering one more loop at a time. Loop leaping contrasts with classical approaches to finding loo ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract Loop leaping is the colloquial name given to a form of program analysis in which summaries are derived for nested loops starting from the innermost loop and proceeding in a bottomup fashion considering one more loop at a time. Loop leaping contrasts with classical approaches to finding loop invariants that are iterative; loop leaping is compositional requiring each stratum in the nest of loops to be considered exactly once. The approach is attractive in predicate abstraction where disjunctive domains are increasingly used that present long ascending chains. This paper proposes a simple and an efficient approach for loop leaping for these domains based on viewing loops as closure operators. Copyright c © 2012 University of Kent Published by the School of Computing,
An Average Case Time Complexity Estimator for Blackbox Functions
"... AbstractAverage case time complexity is widely used to evaluate the efficiency of an algorithm ..."
Abstract
 Add to MetaCart
(Show Context)
AbstractAverage case time complexity is widely used to evaluate the efficiency of an algorithm
Typebased heap and stack space analysis in Java
, 2013
"... A type system is introduced for a strict but expressive subset of Java in order to infer resource upper bounds on both the heapspace and the stackspace requirements of typed programs. This type system is inspired by previous works on Implicit Computational Complexity, using tiering and noninterfe ..."
Abstract
 Add to MetaCart
A type system is introduced for a strict but expressive subset of Java in order to infer resource upper bounds on both the heapspace and the stackspace requirements of typed programs. This type system is inspired by previous works on Implicit Computational Complexity, using tiering and noninterference techniques. The presented methodology has several advantages. First, it provides explicit polynomial upper bounds to the programmer, hence avoiding OutOfMemory and StackOverFlow errors. Second, type checking is decidable in linear time. Last, it has a good expressivity since it analyzes most object oriented features like overload, inheritance, override.
The Geometry of Types
"... We show that time complexity analysis of higherorder functional programs can be effectively reduced to an arguably simpler (although computationally equivalent) verification problem, namely checking firstorder inequalities for validity. This is done by giving an efficient inference algorithm for l ..."
Abstract
 Add to MetaCart
(Show Context)
We show that time complexity analysis of higherorder functional programs can be effectively reduced to an arguably simpler (although computationally equivalent) verification problem, namely checking firstorder inequalities for validity. This is done by giving an efficient inference algorithm for linear dependent types which, given a PCF term, produces in output both a linear dependent type and a cost expression for the term, together with a set of proof obligations. Actually, the output type judgement is derivable iff all proof obligations are valid. This, coupled with the already known relative completeness of linear dependent types, ensures that no information is lost, i.e., that there are no false positives or negatives. Moreover, the procedure reflects the difficulty of the original problem: simple PCF terms give rise to sets of proof obligations which are easy to solve. The latter can then be put in a format suitable for automatic or semiautomatic verification by external solvers. Ongoing experimental evaluation has produced encouraging results, which are briefly presented in the paper. 1