Java programmers can document that the relationship between two objects is unchanging by declaring the field that encodes that relationship to be final. This information can be us...
Software transactions have received significant attention as a way to simplify shared-memory concurrent programming, but insufficient focus has been given to the precise meaning o...
Library-based record and replay tools aim to reproduce an application's execution by recording the results of selected functions in a log and during replay returning the resu...
Zhenyu Guo, Xi Wang, Jian Tang, Xuezheng Liu, Zhil...
Computers are notoriously insecure, in part because application security policies do not map well onto traditional protection mechanisms such as Unix user accounts or hardware pag...
Nickolai Zeldovich, Hari Kannan, Michael Dalton, C...
We present a new symbolic execution tool, KLEE, capable of automatically generating tests that achieve high coverage on a diverse set of complex and environmentally-intensive prog...