Title
Sigma*: symbolic learning of input-output specifications
Abstract
We present Sigma*, a novel technique for learning symbolic models of software behavior. Sigma* addresses the challenge of synthesizing models of software by using symbolic conjectures and abstraction. By combining dynamic symbolic execution to discover symbolic input-output steps of the programs and counterexample guided abstraction refinement to over-approximate program behavior, Sigma* transforms arbitrary source representation of programs into faithful input-output models. We define a class of stream filters---programs that process streams of data items---for which Sigma* converges to a complete model if abstraction refinement eventually builds up a sufficiently strong abstraction. In other words, Sigma* is complete relative to abstraction. To represent inferred symbolic models, we use a variant of symbolic transducers that can be effectively composed and equivalence checked. Thus, Sigma* enables fully automatic analysis of behavioral properties such as commutativity, reversibility and idempotence, which is useful for web sanitizer verification and stream programs compiler optimizations, as we show experimentally. We also show how models inferred by Sigma* can boost performance of stream programs by parallelized code generation.
Year
DOI
Venue
2013
10.1145/2429069.2429123
POPL
Keywords
Field
DocType
stream programs compiler optimizations,symbolic model,input-output specification,stream filter,symbolic learning,symbolic transducers,abstraction refinement,dynamic symbolic execution,symbolic input-output step,symbolic conjecture,process stream,strong abstraction,parallelization,equivalence checking,compiler optimization
Formal equivalence checking,Programming language,Abstraction,Computer science,Optimizing compiler,Theoretical computer science,Code generation,Symbolic execution,Sigma,Counterexample,Symbolic trajectory evaluation
Conference
Volume
Issue
ISSN
48
1
0362-1340
Citations 
PageRank 
References 
12
0.54
46
Authors
2
Name
Order
Citations
PageRank
Matko Botinčan1413.72
Domagoj Babić21457.11