Information flow is an important security property that must be incorporated from the ground up, including at hardware design time, to provide a formal basis for a system’s roo...
Xun Li 0001, Mohit Tiwari, Jason Oberg, Vineeth Ka...
Program analysis and verification tools crucially depend on the ability to symbolically describe and reason about sets of program behaviors. Separation logic provides a promising...
In this paper we propose Recon, a new general approach to concurrency debugging. Recon goes beyond just detecting bugs, it also presents to the programmer short fragments of buggy...
For more than thirty years, the parallel programming community has used the dependence graph as the main abstraction for reasoning about and exploiting parallelism in “regular...
Keshav Pingali, Donald Nguyen, Milind Kulkarni, Ma...
We consider the problem of specifying combinations of data structures with complex sharing in a manner that is both declarative lts in provably correct code. In our approach, abst...
Peter Hawkins, Alex Aiken, Kathleen Fisher, Martin...
Software modifications are often systematic—they consist of similar, but not identical, program changes to multiple contexts. Existing tools for systematic program transformati...
Current proposals for concurrent shared-memory languages, including C++ and C, provide sequential consistency only for programs without data races (the DRF guarantee). While the i...
MATLAB is an array language, initially popular for rapid prototyping, but is now being increasingly used to develop production code for numerical and scientific applications. Typ...