This talk first examines distributed computing from a languages/software engineering standpoint, and subsequently uses the distributed programming domain to motivate program generation: a general and powerful approach to automating programming tasks.
We begin with a simple-to-state but important problem: how to define middleware that allows the programmer to think of a distributed application largely as a centralized one, while maintaining efficiency and expressiveness. Our NRMI middleware facility is the first to support call-by-copy-restore semantics for arbitrary pointer-based data, letting the programmer think of a remote procedure call much like a local one in many useful cases. We show that NRMI is significantly easier to use than traditional RPC middleware, yet maintains efficiency and full programmer control.
If we take the task of simplifying distributed programming to the extreme, we encounter systems that allow unsuspecting programs to execute in a distributed environment. Typically such systems use program generation extensively. We briefly present our J-Orchestra system for automatically enabling Java programs to execute in a distributed setting. We then discuss the impact that the J-Orchestra program transformation techniques have had on a large open-source project (JBoss).
Yannis Smaragdakis got his Ph.D. from the University of Texas at Austin and is currently an Associate Professor at the University of Oregon. His interests are on the systems and languages side of software engineering.
More information on his work can be found at: http://www.cs.uoregon.edu/~yannis