Programming-Language Motivation, Design, and Semantics for Software Transactions Dan Grossman University of Washington June 2008.