Date of Award
December 2018
Degree Type
Thesis
Degree Name
Master of Science
Department
Computer Science
First Advisor
Tian Zhao
Committee Members
John T Boyland, Ethan Munson
Keywords
Arrows, Concurrency Analysis, JavaScript
Abstract
Concurrency errors are difficult to detect and correct in asynchronous programs such as those implemented in JavaScript. One reason is that it is often difficult to keep track of which parts of the program may execute in parallel and potentially share resources in unexpected, and perhaps unintended, ways. While programming constructs such as promises can help improve the readability of asynchronous JavaScript programs that were traditionally written using callbacks, there are no static tools to identify asynchronous functions that run in parallel, which may potentially cause concurrency errors.
In this work, we present a solution for implementing JavaScript programs using a library based on the abstraction of arrows. We enhanced the previous implementation of the arrows library by enabling its use with Node.js and by adding parallel asynchronous path detection. Automated identification of which arrows may execute in parallel helps the programmer narrow down the possible sources of concurrency errors.
Recommended Citation
Cochrane, Joshua, "Concurrency Analysis in Javascript Programs Using Arrows" (2018). Theses and Dissertations. 1980.
https://dc.uwm.edu/etd/1980