Formal models serve in many roles in the programming language community. In its primary role, a model communicates the idea of a language design; the architecture of a language to...
Casey Klein, John Clements, Christos Dimoulas, Car...
Data races are among the most reliable indicators of programming errors in concurrent software. For at least two decades, Lamport’s happens-before (HB) relation has served as th...
Yannis Smaragdakis, Jacob Evans, Caitlin Sadowski,...
Despite recent successes, large-scale proof development within proof assistants remains an arcane art that is extremely timeconsuming. We argue that this can be attributed to two ...
We introduce the first binary search tree algorithm designed for speculative executions. Prior to this work, tree structures were mainly designed for their pessimistic (non-specu...
Graphics processing units (GPUs) are powerful devices capable of rapid parallel computation. GPU programming, however, can be quite difficult, limiting its use to experienced prog...