Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HPC technology and the ever increasing requirement for our applications to run on the web or on collaborating mobile devices. A number of publications on middleware and language design — so-called reactive and event-based languages and systems (REBLS) — have already seen the light, but the field still raises several questions. For example, the interaction with mainstream language concepts is poorly understood, implementation technology is in its infancy and modularity mechanisms are almost totally lacking. Moreover, large applications are still to be developed and patterns and tools for developing reactive applications is an area that is vastly unexplored.
This workshop will gather researchers in reactive and event-based languages and systems. The goal of the workshop is to exchange new technical research results and to define better the field by coming up with taxonomies and overviews of the existing work.
Self-Adjusting Computation: Practical Abstractions for Dynamic Software (Umut Acar)
Developing efficient and reliable software is a difficult task. Rapidly growing and dynamically changing data sets further increase complexity by demanding higher efficiency and performance. In this talk, I will present practical and powerful abstractions for taming software complexity in this domain. Together with the algorithmic models and programming-languages that embody them, these abstractions enable designing and developing efficient and reliable software by using high-level programming techniques. As evidence for their effectiveness, I will present results from a broad range of applications including sophisticated algorithms in geometry, machine-learning, and large-scale cloud computing. On the theoretical side, we will see that asymptotically significant improvements in efficiency are possible. On the practical side, we will discuss several programming-language extensions that can realize these theoretical outcomes in practice.
Bio: Umut Acar is an Associate Professor at Carnegie Mellon University. He obtained his Ph.D. at Carnegie Mellon University (2005), and his M.A. and B.S. degrees at University of Texas at Austin and Bilkent University. Between 2005 and 2012, he was a researcher in Toyota Technological Institute and Max Planck Institute for Software Systems. Acar's research interests span programming languages, algorithms, and software systems.
Playful but not a Toy: Views on Reactive Programming from within a Large Software Project (Johannes Emerich)
Prezi is a multi-platform, cloud-based presentation software comprising a complex document authoring tool and graphics engine. To address the challenges in developing such large and heavily interactive applications at scale, especially in the browser space, Prezi has started to engage and invest in (functional) reactive programming technologies - including Bacon.js, ReactiveCocoa and the recent Elm language. We will discuss the motivation to adopt reactive programming, its benefits for developing interactive software and the challenges it poses when using it in designing large systems Finally, we will outline future plans for reactive programming at Prezi.
|Reactive Traversal of Recursive Data Types||Francisco Sant'Anna, Hisham Muhammad and Johnicholas Hines|
|Functional Reactive Programming with nothing but Promises||Alan Jeffrey and Tom Van Cutsem|
|Type Safe Evolution of Live Systems||Miguel Domingues and João Costa Seco|
|Live Programming for Event-Based Languages||Christopher Schuster and Cormac Flanagan|
|Dynamic Condition Response Graphs as Foundation for Event-based Languages and Systems||Søren Debois and Thomas Hildebrandt|
|Reactive Interfaces: Combining Events and Expressing Signals||Ragnar Mogk|
|Logical Reactive Programming||Thierry Renaux, Lode Hoste and Wolfgang De Meuter|
|Indexing RETE’s Working Memory||Simon Van de Water, Thierry Renaux, Lode Hoste and Wolfgang De Meuter|
|Temporal Correlation Patterns||Oliver Bračevac|
|Declarative Deadlines in Functional-Reactive Programming||Kevin Baldor and Jianwei Niu|
Even though reactive programming and event-based programming are receiving ever more attention, the field is far from mature. This workshop will join forces and try to gather researchers working on the foundational models, languages and implementation technologies. We welcome all submissions on reactive programming, aspect- and event-oriented systems, including but not limited to: language design, implementation, runtime systems, program analysis, software metrics, patterns and benchmarks.
The format of the workshop is that of a mini-conference. Participants can present their work in slots of 30mins with Q&A included. Because of the declarative nature of reactive programs, it is often hard to understand their semantics just by looking at the code. We therefore also encourage authors to use their slots for presenting their work based on live demos.
The goal of the workshop is to come to a better understanding of the boundaries of the field. We hope to use the late afternoon session to draw up a taxonomy of existing work and to identify the fundamental paradigmatic problems that still need to be resolved in order to reconcile reactive technologies with mainstream paradigms.
Authors are invited to submit short position papers or long technical papers using the ACM SIG Proceedings style (we suggest Option 2). Papers should be submitted via EasyChair.
Guido Salvaneschi is a postdoc researcher at the Technical University of Darmstadt. He obtained his PhD from Dipartimento di Elettronica e Informazione at Politecnico di Milano, under the supervision of Prof. Carlo Ghezzi with a dissertation on context-oriented programming and language-level techniques for adaptive software. His current research interests focus on programming language design, specifically on language support for reactive applications, such as events, dataflow languages and functional reactive programming. He is also interested in self-adaptive software, with a special focus on language-level approaches and ad hoc programming paradigms such as context-oriented programming. He served in in the PC of MODULARITY’14, FOAL’14, Scala'15, co-organized the REM’13 workshop at SPLASH’13 and the REBLS'14 workshop at SPLASH’14.
Wolfgang De Meuter is a professor at the Vrije Universiteit Brussel. He leads a research group that is working on ambient-oriented programming, distributed middleware, RFID-enabled applications, cloud-oriented programming techniques, participatory sensing and reactive programming. He is the author of numerous publications in programming language engineering and won the Dahl-Nygaard Junior prize in 2008. He has been active in organizing several workshops at ECOOP and OOPSLA. He was the workshop chair of ECOOP’05 and the PC-Chair of Coordination’11. He took the initiative to organize the ECOOP workshop series on Object-oriented Language Design for the Post-Java Era which was the direct precursor of the Revival of Dynamic Languages workshop series which finally ended up in the Dynamic Languages Symposium at Splash. He has served on several PCs of Splash and Ecoop.
Patrick Eugster is an Associate Professor of Computer Science at Purdue University where he leads the Distributed Programming Group. Patrick’s area of expertise lies in the intersection of programming languages and distributed systems. Some of Patrick’s recent publications appear in ECOOP'12, ICDCS'12, DSN'12, Sensys'11, OOPSLA’11, and Middleware'11. He was PC co-chair for DEBS'12. He has served on several PCs for conferences like ECOOP, ICDCS, and Middleware. Patrick is a recipient of a NSF CAREER award among others. His work has been supported by NSF, DARPA, Northrop Grumman, Purdue Research Foundation, Google, and Amazon. He served as workshop (co-)chair of ECOOP'08 and '12. Patrick co-organized a successful SPLASH'10 workshop on Programming Support Innovations for Emerging Distributed Applications.
Lukasz Ziarek has received his Ph.D. in Computer Science from Purdue University in May 2011. He is working at the University at Buffalo the State University of New York as an Assistant Professor. He serves on the advisory board and is the acting President of Fiji Systems Inc. located in South Bend, Indiana. He has served on the program committees of HILT'14, JTRES'14, DAMP'12, JTRES'11, and JTRES'10 and is the general chair of JTRES'14. He has helped organize the local CSTA annual conference, Python workshops for HS teachers, and was the chair of the SPLASH'13 and SPLASH'14 Doctoral Symposium.