Paper Details

Communicating Process Architectures (CPA)
 Title: Communicating Generators in JavaScript
 Conference: Communicating Process Architectures 2016
 Authors: Kurt Micallef, Kevin Vella
Department of Computer Science, University of Malta
 Abstract: This paper outlines the design, performance, and use of an application programming interface and library for concurrent programming with CSP in JavaScript. The implementation harnesses ECMAScript 6 Generators to provide co-operative scheduling and channel communication within a single JavaScript engine. External channels lie atop WebSockets, amongst other web technologies, to enable multicore and distributed execution across standard web browsers and Node.js servers. Low-level benchmarks indicate that scheduling and messaging performance is within reasonable expectation for this dynamic and diverse execution environment. Sample code snippets highlight the applicability of CSP to contemporary web development in hiding the location of computation and state through the channel abstraction. The call-back hell scenario is alleviated through the use of sequential-style CSP code rather than callbacks predominantly used in the language and the possibility of performing parallel and scientific computing is explored with promising results. Finally, the limitations of the present design are discussed, and possible enhancements such as the dynamic migration of state and code are considered. 

BibTeX Entry

Full paper