Powered by
6th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS 2019),
October 21, 2019,
Athens, Greece
6th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (REBLS 2019)
Frontmatter
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.
@InProceedings{REBLS19p1,
author = {Tian Zhao and Adam Berger and Yonglun Li},
title = {Concurrency Control of JavaScript with Arrows},
booktitle = {Proc.\ REBLS},
publisher = {ACM},
pages = {1--10},
doi = {10.1145/3358503.3361273},
year = {2019},
}
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.
@InProceedings{REBLS19p11,
author = {Yoshitaka Sakurai and Takuo Watanabe},
title = {Towards a Statically Scheduled Parallel Execution of an FRP Language for Embedded Systems},
booktitle = {Proc.\ REBLS},
publisher = {ACM},
pages = {11--20},
doi = {10.1145/3358503.3361276},
year = {2019},
}
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.
@InProceedings{REBLS19p21,
author = {Marcel Blöcher and Matthias Eichholz and Pascal Weisenburger and Patrick Eugster and Mira Mezini and Guido Salvaneschi},
title = {GRASS: Generic Reactive Application-Specific Scheduling},
booktitle = {Proc.\ REBLS},
publisher = {ACM},
pages = {21--30},
doi = {10.1145/3358503.3361274},
year = {2019},
}
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.
@InProceedings{REBLS19p31,
author = {Vadim Zaytsev},
title = {Event-Based Parsing},
booktitle = {Proc.\ REBLS},
publisher = {ACM},
pages = {31--40},
doi = {10.1145/3358503.3361275},
year = {2019},
}
Publisher's Version
Info
proc time: 0.56