Sat 26 - Thu 31 October 2013 Indianapolis, United States

SPLASH-I is a new series of industrial research talks that address topics relevant to the SPLASH community. Speakers are world-class experts in their field, selected and invited by the organizers. The SPLASH-I talks series is held in parallel with the OOPSLA main track. Talks are open to all attendees.


Parallelism for the Masses: A Parallel JavaScript

Tue 10:30-11:30 am - Network
Richard L. Hudson, Intel, USA

Parallel programming has long been the realm of experts. Locks, memory models and races were the devils that JavaScript banished at its inception. Parallel JavaScript, named River Trail, rejects the notion that parallelism requires a Faustian bargain. Instead Parallel JavaScript gently extends JavaScript in safe, secure, and programmer-friendly ways resulting in the most important performance change web programmers will enjoy over the next few years. This talk presents our work on creating a web appropriate and HTML5/JavaScript programmer friendly parallel programming model, the implementation, and how we are building community acceptance. Parallel JavaScript is the leading contender on how to bring parallelism to the masses and is rapidly gaining acceptance both in the standards arena as well as in application arenas as the answer to evolving JavaScript into a more parallel world.


Richard L. Hudson is known for his work in memory management including the invention of the Train Algorithm, the Sapphire Algorithm, the Mississippi Delta Algorithm, and leveraging transactional memory to enable concurrent GC. He co-invented GC stack maps. He worked on transactional memory, non-blocking data structures, and was a driving force that led to the articulation of the x86 memory model. More recently Rick has worked on the River Trail team researching the concurrent programming models needed for a more visual and immersive web experience.

Julia, the language

Tue 11:30-12:30 pm - Network
Viral Shah, MIT, USA
Jeff Bezanson, MIT, USA
Stefan Karpinski, MIT, USA

This talk gives an overview of Julia. Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.


Viral Shah is one of the co-creators of the Julia language. He was inspired by his frustrations with existing languages and tools for scientific computing. He authored Circuitscape (http://www.circuitscape.org), a tool that uses electrical circuit theory to model wildlife corridors for conservation, and is used around the world. His PhD work focussed on developing Star-P, a parallel implementation of Matlab. He also helped shape the design of the largest biometric identification project Aadhaar, which is under implementation by the Government of India (http://uidai.gov.in).

Before the Julia effort began, Jeff Bezanson worked as a software engineer at Interactive Supercomputing, which developed the Star-P parallel extension to MATLAB. At the company, Jeff was a principal developer of M#, an implementation of the MATLAB language running on .NET. He is now a PhD student at MIT. Jeff has an A.B. in Computer Science from Harvard and has experience with applications of technical computing in medical imaging.

Stefan Karpinski is one of the co-creators and core developers of the Julia language. He is an applied mathematician and data scientist by trade, having worked at Akamai, Citrix Online, and Etsy, but currently is focused on advancing Julia's design, implementation, documentation, and community.

So you want to be an industrial researcher?

Tue 1:00-2:00 pm - Network
Mario Wolczko, Oracle, USA

Students about to graduate are usually faced with the choice of continuing their career in academia or in industry. Research students may want to stay in research, and industrial research often beckons (who wants to grade assignments?), but - judging by the candidates I interview - few know much about industrial research and how it differs from academic research. Indeed, many in industry don't know what industrial research labs do. This talk will attempt to paint a clear picture, based on my experiences. What's the function of an industrial research lab? How are they organized and run? What are their goals? Why would you want to work in one – or not?


Mario Wolczko has been a researcher and research manager in Sun Labs and Oracle Labs since 1993 (and before that, was an academic researcher). His current title is Architect. His research interests include language implementation with an emphasis on virtual machines, computer architecture and memory systems design, garbage collection, object-oriented programming languages and performance instrumentation.

Civilizing Web Programming with Dart

Tue 2:00-3:00 pm - Network
Gilad Bracha, Google, USA

Contemporary web programming offers enormous advantages, and at the same time can be excruciatingly painful. Dart is a response to the very real problems of performance and productivity encountered doing serious programming on the web platform. Dart is a purely object-oriented, class based, optionally typed imperative programming language focused on web programming. Dart is by design conservative, so as to be accessible to a broad audience of programmers. Dart has been under intense development at Google since late 2010. We'll go over the motivation for Dart, and discuss the current state of the Dart platform and where we expect it to go next.


Gilad Bracha is the creator of the Newspeak programming language and a software engineer at Google where he works on Dart. Previously, he was a VP at SAP Labs, a Distinguished Engineer at Cadence, and a Computational Theologist and Distinguished Engineer at Sun. He is co-author of the Java Language Specification, and a researcher in the area of object-oriented programming languages. Prior to joining Sun, he worked on Strongtalk, the Animorphic Smalltalk System.

R for Big Data

Tue 3:00-4:00 pm - Network
Indrajit Roy, HP, USA

Data scientists use sophisticated algorithms to obtain insights. However, what takes tens of lines in a high-level data analytics language like R is now been rewritten in Hadoop and applied at scale in the industry. Instead of rewriting algorithms in a new model and language can we stretch the limits of R and reuse it for analyzing Big Data? In this talk I will present our experience in scaling R to efficiently perform distributed machine learning and graph processing on industrial-scale data sets.


Indrajit Roy is a senior researcher at HP Labs. He builds parallel systems for large scale analytics, and integrates hardware accelerators for performance. He leads HP's effort in distributed analytics. He used to work on computer security and transactional memory.

Reflections on X10: Towards Performance and Productivity at Scale

Tue 4:00-5:00 pm - Network
David Grove, IBM, USA

The last decade has seen concurrency and scale-out programming move from being a niche concern of the High Performance Computing programmer to being one of the central challenges facing mainstream programmers. During the same decade, the X10 Project at IBM Research has developed the X10 system: a programming model, complete new programming language and tool chain, and a supporting programming environment all designed from the ground up to enable "Performance and Productivity at Scale." In this talk I will attempt to distill the key insights from the X10 experience, describe how those insights are now being applied in both HPC and commercial contexts, and speculate on how these ideas will continue to influence the development of future programming systems.


David Grove is a Research Staff Member in the Programming Technologies Department at IBM Research where he currently co-leads the X10 Project. His research focus is on applying advanced compiler and runtime system technology to enable the use of high level languages for building high-performance software system. Prior to joining the X10 project, he spent his time hacking on Metronome, Jikes RVM, and Cecil/Vortex.

Cloud Sessions: A Simple Face for Eventual Consistency

Wed 10:30-11:30 am - Theory
Sebastian Burckhardt, Microsoft, USA

In a world of devices and the cloud, users want their apps and their data everywhere, all the time. Maintaining responsiveness when connections are slow or temporarily unavailable can be quite difficult, since it requires developers to work with weaker consistency. How to write such programs, and in particular, how to effectively reason about data consistency and conflict resolution, is a key challenge for the next generation of developers. To simplify their task, we propose "Cloud Sessions", a programming abstraction that makes it easy to work with eventually consistent structured shared data. Cloud Sessions are available as a feature in TouchDevelop, a cross-platform app development environment by Microsoft Research.


Sebastian Burckhardt is a researcher at Microsoft Research in Redmond. His general research interest is the study of programming models for of concurrent, parallel, and distributed systems. More specific interests include memory consistency models, concurrency testing, self-adjusting computation, and the concurrent revisions programming model.

Dancing with Symmetry to Harness the Power of Complexity: Subjective Programming in Context

Wed 10:30-11:30 am - Network
David Ungar, IBM, USA
Harold Ossher, IBM, USA

At any instant when you are programming, some details rise to the foreground and others recede into the background context. The manner in which the programming language supports context profoundly affects the ease of evolution and reuse. We propose a language paradigm that amplifies the power of object-oriented programming by explicitly supporting multi-dimensional context, and using it for dispatch and for program organization. It can directly express, in a unified and simple fashion, many situations that are awkward with object-oriented programming or that usually require ad hoc mechanisms. Although it adds complexity to the object-oriented model, an environment can employ subjectivity with progressive disclosure to hide dimensions and present developer-specific views, thereby smoothing the learning curve. In this talk we will introduce and illustrate the paradigm, give some details of context-based dispatch, and show a glimpse of our early prototype.


David Ungar received the 2009 Dahl-Nygaard award for outstanding career contributions in the field of object-orientation, and was honored as an ACM Fellow in 2010. Three of his papers have been honored by the ACM for their lasting impact: for the design of the prototype-based Self language, object-oriented language implementation techniques, and the application of cartoon animation ideas to user interfaces. He enjoys innovating at IBM Research.

Harold Ossher is a researcher at IBM and an ACM Distinguished Scientist. He was one of the originators of subject-oriented programming, multi-dimensional separation of concerns and Hyper/J. He received most-influential paper awards for OOPSLA and ICSE on these topics, and was one of the founders of the aspect-oriented software development community.

Computing without Processors

Wed 11:30-12:30 pm - Theory
Satnam Singh, Google, USA

The duopoly of computing has up until now been delimited by drawing a line in the sand that defines the instruction set architecture as the hard division between software and hardware. On one side of this contract Intel improved the design of processors and on the other side of this line Microsoft developed ever more sophisticated software. This cozy relationship is now over as the distinction between hardware and software is blurred due to relentless pressure for performance and reduction in latency and energy consumption. Increasingly we will be forced to compute with architectures and machines which do not resemble regular processors with a fixed memory hierarchy based on heuristic caching schemes. Other ways to bake all that sand will include the evolution of GPUs and FPGAs to form heterogeneous computing resources which are much better suited to meeting our computing needs than racks of multicore processors.


Satnam works in Googe's Technical Infrastructure division. He is also the Chair of Reconfigurable Systems at the University of Birmingham. Previously, he has worked at Microsoft, Xilinx and the University of Glasgow. His interests include reconfigurable computing, functional programming, formal verification and fine liquors.

Surgical Precision JIT Compilers

Wed 11:30-12:30 pm - Network
Tiark Rompf, EPFL, Switzerland

Profile-driven JIT compilers like those in most JVMs are usually good, but they can be unpredictable. Achieving top performance consistently is hard. Lancet, a JIT compiler written in Scala, allows applications to take full control of the JIT process. This includes the ability to compile multiple specialized versions of code paths at runtime. Lancet provides JIT macros that allow for user code to execute in the JIT and thus open the door for "smart libraries" that come with domain-specific optimizations and checks. As opposed to most macro systems, JIT macros are not a front-end source processor, but tightly integrated with regular compiler optimizations and VM functionality like speculative optimization and re-optimization.


Tiark Rompf is a researcher at Oracle Labs and EPFL. His work focuses on making high-level programming abstractions more performant through runtime code generation and advanced compiler technology. Related to Project Lancet, he works on Lightweight Modular Staging (LMS) and Delite, frameworks for high-performance code generation and DSLs. As a member of Martin Odersky's team at EPFL he also contributed to Scala in other ways.

PHP, Seriously!

Wed 3:30-4:30 pm - Network
Keith Adams, Facebook, USA

PHP is as often maligned as it is widely used. Conventional wisdom is that PHP is an inferior language, whose popularity is due solely to legacy effects. The success of projects written in PHP, according to this view, proves only that with enough thrust, even pigs can fly. This story ignores some critical details. This talk examines the strengths that, whether by design or accident, have made PHP a dominant language in its niche. Even if you never use PHP, its success holds lessons for other environments. We will also highlight Facebook's attempts at remedying the inconsistencies and misfeatures in the core language, while maintaining PHP's strengths.


Keith Adams is a Virtual Machinist at Facebook. He is one of the initial designers and implementers of HHVM, the open source PHP JIT that runs Facebook's front-end. Through a series of mostly fortunate events, Keith became a founding member of The I-can't-believe-I'm-a-PHP-advocate Club. Before working at Facebook, Keith worked on VMware's virtual machine monitor.

Test and Cure your JavaScript Blues

Wed 4:30-5:30 pm - Network
Koushik Sen, U California Berkeley, USA

JavaScript is widely used for client-side web application and increasingly for mobile applications. Unlike for C, C++ and Java, there are few tools for analysis and testing of JavaScript applications. I will present a simple yet powerful framework, called Jalangi, for writing heavy-weight dynamic analyses. Our framework incorporates two key techniques: selective record-replay, a technique which enables to record and to faithfully replay a part of a program, and shadow execution, which enables easy implementation of heavy-weight dynamic analyses. Our implementation is applicable to real-world JavaScript programs running on multiple platforms. We have implemented concolic testing, an analysis to track origins of nulls and undefined, a simple form of taint analysis, an analysis to detect likely type inconsistencies, and an object allocation profiler in Jalangi.


Koushik Sen is an associate professor in the Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley. His research interest lies in Software Engineering, Programming Languages, and Formal methods. He is best known for his work on “DART: Directed Automated Random Testing” and concolic testing.

The Next 700 Asynchronous Programming Models

Thu 10:30-11:30 am - Network
Philipp Haller, Typesafe, Switzerland

Reactive programming will subsume the next 700 asynchronous programming models! Each of these will be invented to support composition of asynchronous programs. This talks starts with, C#'s Async model and the Rx model. Async enables direct-style programming with futures. Rx is based on observable asynchronous event streams which can be composed and queried using LINQ-style operators. In this talk, we're going to show how to make Rx programming more natural and intuitive. For this, we're going to generalize Scala's Async feature which, so far, has been used to program with non-blocking futures in a familiar direct style.


Philipp Haller is a Consultant at Typesafe and a member of the Scala team. He created Scala's first actors library, and is one of the lead designers of the futures library of Scala 2.10. He worked on parallel domain-specific languages embedded in Scala at Stanford's Pervasive Parallelism Lab and co-authored the book “Actors in Scala”.

TypeScript: a Type System for Toolability

Thu 1:00-2:00 pm - Network
Luke Hoban, Microsoft, USA

TypeScript is a language and toolset that makes it easier to write cross-platform, application-scale JavaScript. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Types are introduced to support tooling, including static analysis, completion lists, refactoring and other rich modern IDE capabilities. The TypeScript type system is designed to capture the runtime semantics of JavaScript faithfully, and to enable modelling the practical design elements of JavaScript APIs. These motivations have led to a non-traditional type system, favoring qualities like easy escape hatches, inference, structural typing and full erasability. I will discuss the TypeScript language, and its broader implications.


Luke Hoban is a program manager at Microsoft working on the JavaScript language and development experience. Currently focused on ECMAScript standards, Internet Explorer JavaScript engine standards support, and Windows 8 JavaScript development experience, Luke has previously worked on several other programming languages and developer tools projects at Microsoft, including the Visual Studio Express products, the C# compiler, and the F# programming language and tools.

Write-Once, Run-Anywhere for the Cloud

Thu 2:00-3:00 pm - Network
Chandra Krintz, U California Santa Barbara, USA

Recent advances in cloud platforms have simplified cloud use by providing developers with complete software/runtime stacks for execution of their web-accessible applications and services. PaaS systems offer programmatic access to scalable, distributed, and fault tolerant cloud services which eliminates the need for developers to write or deploy their own and enabling them to focus on their innovation. I present AppScale, a PaaS platform that emulates: Google App Engine. API-compatibility with App Engine means that any of the three million active App Engine apps today execute over AppScale without modification. This, in combination with the fact that AppScale executes anywhere a virtual machine can be instantiated (a laptop, an on-premise cluster, a local data center, Amazon EC2 or other IaaS), means that AppScale gives developers choice across all of the most popular deployment options available today, with no code rewrite — bringing "write-once, run-anywhere" to cloud applications.


Chandra Krintz is CTO of AppScale Systems Inc and a Professor at UCSB. Chandra has led a number of different research projects that have advanced the state-of-the-art in programming systems in ways that improve performance and energy consumption, and that ease development and deployment of software. Her recent work focuses on cloud computing.