Analysing and comprehending C programs that use stringsis hard: Using standard library functions for manipulatingstrings is not enforced and programs often use complex loopsfor the same purpose. We introduce the notion of memorylessloops that capture some of these string loops and presenta counterexample-guided inductive synthesis approach tosummarise memoryless string loops using C standard libraryfunctions, which has applications to testing, optimizationand refactoring.We prove our summarization is correct for arbitrary inputstrings and evaluate it on a database of loops we gatheredfrom a set of 13 open-source programs. Our approach cansummarize over two thirds of memoryless loops in less than5 minutes of computation time per loop. We the...
Languages that use call-by-value semantics, such as Whiley, can make program verification easier. Bu...
Static analysis of programs in weakly typed languages such as C and C++ generally is not guaranteed ...
Inductive program synthesis, from input/output examples, can provide an opportunity to automatically...
Software has become ubiquitous and its impact is still increasing. The more software is created, th...
Abstract. Many software model checkers only detect counterexamples with deep loops after exploring n...
Many software model checkers only detect counterexamples with deep loops after exploring numerous sp...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
© 2020, The Author(s). The need for parallel task execution has been steadily growing in recent year...
AbstractThe criticality of modern software applications, the pervasiveness of malicious code concern...
Data type abstraction plays a crucial role in software verification. In this paper, we introduce a d...
String rewriting reductions of the form , called loops, are the most frequent cause of infinite redu...
This dissertation deals with the automatic generation of sound specifications from a given program i...
C programs that manipulate list-based dynamic data structures remain a challenging target for static...
Existing program analysis tools that implement abstraction rely on saturating procedures to compute ...
This paper presents algorithms for program abstraction based on the principle of loop summarization,...
Languages that use call-by-value semantics, such as Whiley, can make program verification easier. Bu...
Static analysis of programs in weakly typed languages such as C and C++ generally is not guaranteed ...
Inductive program synthesis, from input/output examples, can provide an opportunity to automatically...
Software has become ubiquitous and its impact is still increasing. The more software is created, th...
Abstract. Many software model checkers only detect counterexamples with deep loops after exploring n...
Many software model checkers only detect counterexamples with deep loops after exploring numerous sp...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
© 2020, The Author(s). The need for parallel task execution has been steadily growing in recent year...
AbstractThe criticality of modern software applications, the pervasiveness of malicious code concern...
Data type abstraction plays a crucial role in software verification. In this paper, we introduce a d...
String rewriting reductions of the form , called loops, are the most frequent cause of infinite redu...
This dissertation deals with the automatic generation of sound specifications from a given program i...
C programs that manipulate list-based dynamic data structures remain a challenging target for static...
Existing program analysis tools that implement abstraction rely on saturating procedures to compute ...
This paper presents algorithms for program abstraction based on the principle of loop summarization,...
Languages that use call-by-value semantics, such as Whiley, can make program verification easier. Bu...
Static analysis of programs in weakly typed languages such as C and C++ generally is not guaranteed ...
Inductive program synthesis, from input/output examples, can provide an opportunity to automatically...