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 each offer its own advantages in addressing this problem, none offers 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.
Mon 21 OctDisplayed time zone: Beirut change
11:00 - 12:30 | |||
11:00 30mTalk | Concurrency Control of JavaScript with Arrows REBLS Tian Zhao University of Wisconsin-Milwaukee, Adam Berger University of Wisconsin -- Milwaukee, Yonglun Li University of Wisconsin -- Milwaukee | ||
11:30 30mTalk | Towards a Statically Scheduled Parallel Execution of an FRP Language for Embedded Systems REBLS DOI | ||
12:00 30mTalk | Turning Unobservable into Unreachable: Dynamic Reactive Programming without Leaks REBLS File Attached |