Seth Copen Goldstein (School of Computer Science, Carnegie Mellon University)
Tuesday, 11.11.2014, 12:30
Concurrent systems of all types are notoriously hard to program. First one had to understand how to express the algorithm in a concurrent manner. Then, one has to managing the concurrency so that the implementation is correct. Finally the resulting program needs to be both efficient and scalable. These formidable tasks are similar for all concurrent systems---ranging from distributed cyber-physical systems such as claytronics to multicore processors. Traditionally, proposed solutions have focused on the specific features of each type of system. However, recent advances in the underlying hardware have reduced the programmer perceived differences between these systems. In this talk I will describe Meld, a declarative, implicitly parallel programming language which holds the promise of making it significantly easier to create understandable, correct, and scalable programs for all concurrent systems. Its semantics lead to concise and efficient concurrent programs. Furthermore, it lends itself to machine-supported proofs about program properties. Building on our success in using Meld to program claytronics, an instance of programmable matter, we have extended Meld to target graph-based applications running on cloud based systems and multicore processors.