Thursday, February 7, 2008
4:15 pm
B17 Upson Hall

Computer Science
Colloquium
Spring 2008

Michael Scott
University of Rochester
 

Toward a Practical Transactional Programming Language

The move now underway to multi-core and many-core processors represents one of the most disruptive revolutions in the history of computing: legions of "ordinary programmers'' face the prospect of parallelizing their code or living with current performance. A growing consensus in both academia and industry holds that part of the solution will lie in languages and systems that support a lightweight notion of atomic section, reminiscent of database transactions. Transactions allow the composition of separately written functions and, to first approximation, free the programmer from choosing between the clarity of coarse-grain locks and the concurrency of fine-grain locks.

After a brief introduction to transactions and the multi-core revolution, this talk will consider what a practical transactional language might look like. It will focus in particular on the desire to present a simple programming model while simultaneously dealing with a host of semantic subtleties. These subtleties include nesting; exceptions that escape transactions; irreversible operations (e.g. interactive I/O), which cannot be executed speculatively; potentially concurrent accesses to data within and outside transactions; and the desire to avoid bookkeeping overhead on load and store operations whenever possible, without forcing the programmer to overly annotate the source code.

--------------------------

Michael L. Scott is a Professor and past Chair of the Department of Computer Science at the University of Rochester. He received his Ph.D. from the University of Wisconsin-Madison in 1985. His research interests span operating systems, languages, architecture, and tools, with a particular emphasis on parallel and distributed systems. He is best known for work in synchronization algorithms and concurrent data structures, in recognition of which he shared the 2006 SIGACT/SIGOPS Edsger W. Dijkstra Prize. Other widely cited work has addressed parallel operating systems and file systems, software distributed shared memory, and energy-conscious operating systems and microarchitecture. His textbook on programming language design and implementation (Programming Language Pragmatics, second edition, Morgan Kaufmann, Nov. 2005) has become a standard in the field. In 2003 he served as General Chair for SOSP; more recently he has been Program Chair for TRANSACT'07 and PPoPP'08. In 2001 he received the University of Rochester's Robert and Pamela Goergen Award for Distinguished Achievement and Artistry in Undergraduate Teaching.