Programming language memory models: What do shared variables mean?

Friday, September 17, 2010 - 9:50pm

Monday, September 27, 2010
11:00 AM – 12:00 PM
Computer Science Conference Room, Harold Frank Hall Rm. 1132

HOST: Chandra Krintz

SPEAKER: Hans Boehm

Title: Programming language memory models: What do shared variables mean?

Abstract: Although multithreaded programming languages are common, there has been a surprising amount of confusion surrounding the basic meaning of shared variables. There is finally a growing consensus, both that programming languages should by default guarantee an interleaving-based semantics for data-race-free programs, and on what that should mean. We discuss the motivation for, and both implementation and user consequences of, this guarantee.

Unfortunately, it is also increasingly clear that such a guarantee, though useful, is insufficient for languages intended to support sand-boxed execution of untrusted code. The existing solution in Java is only partially satisfactory. The solution to this problem is far less clear. We briefly outline one promising approach.


Hans Boehm is perhaps best known as the primary author of a commonly used garbage collection library. That experience convinced him that there was a need to address fundamental shared memory parallel programming issues. He was involved in the revision of the Java memory model, and led the analogous effort for C++. Hans holds a Ph.D. from Cornell University. After teaching for several years, he worked for several industrial research labs. He has been at HP Labs since 1999. He was awarded the PLDI 2003 most influential paper award and the SIGPLAN 2006 Distinguished Service Award. He is an ACM Distinguished Scientist.