We develop a new framework of algebraic theories with linear parameters, and use it to analyze the equational reasoning principles of quantum computing and quantum programming lan...
Building a summary for library code is a common approach to speeding up the analysis of client code. In presence of callbacks, some reachability relationships between library node...
For scientific array-based programs, optimization for a particular target platform is a hard problem. There are many optimization techniques such as (semantics-preserving) source...
In this paper, we present a technique to synthesize machine-code instructions from a semantic specification, given as a Quantifier-Free Bit-Vector (QFBV) logic formula. Our tech...
Concurrency control poses significant challenges when composing computations over multiple data-structures (objects) with different concurrency-control implementations. We formal...
Ofri Ziv, Alex Aiken, Guy Golan-Gueta, G. Ramaling...
Highly optimized programs are prone to bit rot, where performance quickly becomes suboptimal in the face of new hardware and compiler techniques. In this paper we show how to auto...
Charith Mendis, Jeffrey Bosboom, Kevin Wu, Shoaib ...
We present an approach and tool for general-purpose modeling of Android for static analysis. Our approach is to explicate the reflective bridge between the Android framework and ...
Sam Blackshear, Alexandra Gendreau, Bor-Yuh Evan C...
Numerical abstract domains are a fundamental component in modern static program analysis and are used in a wide range of scenarios (e.g. computing array bounds, disjointness, etc)...
Energy harvesting enables novel devices and applications without batteries, but intermittent operation under energy harvesting poses new challenges to memory consistency that thre...
The ISO C standard does not specify the semantics of many valid programs that use non-portable idioms such as integer-pointer casts. Recent efforts at formal definitions and veri...
Jeehoon Kang, Chung-Kil Hur, William Mansky, Dmitr...