Our work complements research done on hardware and software algorithms for implementing transactions by considering essential issues regarding how transactions affect language semantics and language implementation. Our motivation takes the novel view that transactions can improve language support for concurrency much like garbage collection can improve language support for memory management. Our language design and language semantics work has considered the pitfalls of so-called "weak isolation" and how to avoid them, interaction with other language features like native calls and exceptions, and the implications for shared-memory consistency models. Our implementation work includes techniques for the special case of a uniprocessor, a whole-program static optimization that uses pointer information to remove unnecessary read- and write-barriers while providing "strong isolation", and ongoing work for allowing parallelism within transactions.
Dan Grossman is an Assistant Professor in the Department of Computer Science & Engineering at the University of Washington. His research in the design and implementation of programming languages is aimed at improving software quality.