Computer Science Department
School of Computer Science, Carnegie Mellon University


Practical Abstractions for Concurrent Interactive Programs

Stefan K. Muller, William A. Duff, Umut A. Acar

August 2015


This is an expanded version of a paper that was submitted to the
36th Annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015)
in November 2014. Apart from the inclusion of additional technical details,
the original submission has only been modified to make typographical corrections.

Keywords: Interaction, reactive programming, performance evaluation, programming language design

We propose abstractions for designing and implementing concurrent interactive applications, such as graphical user interfaces, games and simulations, that interact with the external world in complex ways. The abstractions enable the programmer to write software that interacts with external agents (e.g., mouse, keyboard, network, the operating system) both synchronously and asynchronously in a uniform manner by means of several simple (concurrent) primitives. We specify the semantics of the primitives and provide an implementation as an OCaml library. We develop a software framework for assessing the responsiveness of interactive applications and evaluate our techniques by considering a range of applications including games, physics simulations, a music-streaming server, and a Unix shell, as well as microbenchmarks that enable quantitative analysis. Our results show the proposed abstractions to be expressive and performant.

31 pages

Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by