SPLASH Workshops 2019
2019 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH Workshops 2019)
Powered by
Conference Publishing Consulting

6th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS 2019), October 21, 2019, Athens, Greece

REBLS 2019 – Proceedings

Contents - Abstracts - Authors

6th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS 2019)

Frontmatter

Title Page


Welcome from the Chairs
Reactive programming and event-based programming are two closely related programming styles that are becoming ever more important with the advent of advanced HCI technology and the ever increasing requirement for applications to run on the web or on collaborating mobile devices. A number of publications about middleware and language design - so-called reactive and event-based languages and systems - 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 gathers 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. We aim to create better cohesion in the community working on reactive and event-based programming, propose new solutions and come up with a clearer understanding of the boundaries of the field. We plan to discuss and exchange ideas about the fundamental paradigmatic problems that still need to be solved in order to reconcile reactive technologies with mainstream paradigms.
The previous editions of REBLS have been organized in 2014, 2015, 2016, 2017 and 2018 co-located with the SPLASH conference.

Language Design and Implementation

Concurrency Control of JavaScript with Arrows
Tian Zhao, Adam Berger, and Yonglun Li
(University of Wisconsin-Milwaukee, USA)
Concurrency control is difficult in JavaScript programs, where event race due to asynchronous computation is a major source of errors. While methods such as promises, cancellation tokens, and reactive programming offer their own advantages in addressing this problem, none offer a complete solution.
In this work, we present an integrated solution for concurrency control of JavaScript using a library, arrowjs, which is based on the abstraction of arrows. Arrowjs uses continuation passing style to chain callbacks and it implicitly generates progress objects to manage concurrency. Arrowjs can implement a form of push-based reactive programming, where event streams are arrow loops communicating through shared memory. Arrowjs thus provides interoperability between thread-like callback chains and event streams with a uniform concurrency control mechanism.

Publisher's Version
Towards a Statically Scheduled Parallel Execution of an FRP Language for Embedded Systems
Yoshitaka Sakurai and Takuo Watanabe
(Tokyo Institute of Technology, Japan)
This paper presents an automatic parallelization method for a pure FRP language designed for embedded systems. Recent advances in microprocessor technology make it possible to use multicore processors even in resource-constrained embedded systems. To fully utilize such processors with a pure FRP language, we propose a method for parallelizing signal graph updates. The method is based on a static scheduling algorithm because it should run with a simple RTOS or without the help of operating systems. To evaluate the proposed method, we implemented a parallelizing compiler for XFRP, a pure FRP language for embedded systems. In this paper, we describe the parallelizing method and show some preliminary evaluation results using Linux-based systems that demonstrate the effectiveness of the method.

Publisher's Version

Domain Specific Applications

GRASS: Generic Reactive Application-Specific Scheduling
Marcel Blöcher, Matthias Eichholz, Pascal Weisenburger, Patrick Eugster, Mira Mezini, and Guido Salvaneschi
(TU Darmstadt, Germany; USI Lugano, Switzerland)
High resource utilization is important to operate compute infrastructures and data centers efficiently. High utilization is achieved by multiplexing several applications over the same physical infrastructure. Yet, with this approach, the different requirements of each application have to be taken into account when scheduling resources. We propose GRASS, a reactive domain-specific abstraction that allows specifying application-tailored resource scheduling policies. We demonstrate how the declarative approach of GRASS enables extension and composition of scheduling policies. Our evaluation shows the performance benefits of considering application-specific information in a composition of scheduling policies that adapt at run time.

Publisher's Version
Event-Based Parsing
Vadim Zaytsev
(Raincode Labs, Belgium)
Event-based parsing is a largely unexplored problem. Despite several hugely popular event-based parsers like SAX, there is very little research on the ways grammar engineers can be given explicit control over handling input tokens, and the consequences of exposing this control. Tool support is also underwhelming, with no language workbenches and very few libraries to help a parser developer to get started quickly and efficiently. To explore this paradigm, we have designed a language for event-based parsing and developed a prototype that translates specifications written in that language, to parsers in C#. We also report on the comparative performance of one of the parsers we generated, and a previously used PEG parser extracted from a real compiler.

Publisher's Version Info

proc time: 0.56