Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications

Welcome to SPLASH! SPLASH is the new umbrella for OOPSLA, Onward!, and the Dynamic Languages Symposium. This year, SPLASH also hosts the Scheme Workshop. As usual, a couple of other conferences chose to co-locate with SPLASH; this year, we have the conference on Generative Programming and Component Engineering (GPCE) and the Pattern Languages of Programming conference (PLoP). SPLASH has emerged from OOPSLA with the underlying drive to expand from it and to include more contributions than those that were typically accepted at OOPSLA. This transition didn't have a master plan; we tried several models for SPLASH and its relation to OOPSLA and Onward!. One of them was the "federated conference" model, like the ACM FCRC, where several existing conferences co-locate in the same place at about the same time. But that didn't feel quite right---there has always been a strong connection between OOPSLA, Onward!, and DLS. Separating them while co-locating them might make them compete with each other, which would be exactly the opposite of what we intended SPLASH to be. We realized that conferences have many possible views: there are at least internal and external views. The internal view is what the ACM uses for accounting and administration purposes; for this internal view, separation is a good thing, because it keeps every single event financially independent and accountable. This is what the federated conferences model does. The external view is what the attendees see; from the attendees' point of view, separation of all these events in the form of separate registration fees is bad, because people prefer to flow freely from session to session without having to make upfront plans about what to attend. We realized that we needed an accounting model that served the attendees better than the federated conferences model does. So let me explain SPLASH with a picture: In the picture, the SPLASH box and the co-located conference boxes denote accounting borders. What this means is that SPLASH accommodates several conferences and symposia (OOPSLA, Onward!, DLS, etc.) within one single accounting box; participants see a simple registration fee that doesn't separate the different events, and whose price is proportional to the number of days that a participant decides to attend. As a consequence, during the SPLASH days, participants can freely roam to whatever sessions they want without having to register for individual events, which is exactly what all of us want to do! There is one final detail concerning this arrangement: even though we are grouping conferences under the SPLASH administrative and accounting umbrella, we don't want to disturb the intellectual autonomy and branding of those conferences. We want the SPLASH conferences to continue to make their own decisions regarding topics, scope, and criteria for content selection, as well as produce their own separate proceedings. This is crucial for the success of the SPLASH model and the success of each of its conferences. In short: SPLASH gives full autonomy to the different conferences in it, while minimizing their administrative overhead and serving participants the full spectrum of options about which parts to attend under one single registration fee. On top of this, it also supports the more traditional co-location model with other conferences that, for one reason or another, wish to remain financially independent. We hope that in the future more conferences join the SPLASH in whatever way they see fit. Design conferences as you may, SPLASH is the premier conference for researchers, practitioners, educators, and students who are passionate about all aspects of software construction and delivery, and who seek to find deep insights about software that go beyond the shiny surfaces of the latest trends. There is no question that software is having a tremendous impact in Society. The SPLASH community should be proud of the fact that many of the technologies and methodologies that underlie modern software have emerged here at OOPSLA. I decided to choose a theme this year that captures the change in the order of magnitude of computing that happened over the past few years: The Internet as the world-wide Virtual Machine. We're operating at the global scale now. These days software systems are rarely designed in isolation; they connect to pieces written by 3rd parties, they communicate with other pieces over the Internet, they use big data produced elsewhere, they touch millions of interacting users through an ever larger variety of physical devices...in other words, the "machine" is now a global computing network. What does this entail for software development itself? In this publication, you will find the collection of proceedings of the several sponsored conferences, as well as many papers and summaries of sessions that have a more informal arrangement within SPLASH. I believe we have assembled an impressive technical program, and I hope you enjoy it!