Concurrency Analysis in Javascript Programs Using Arrows

File(s)
Date
2018-12-01Author
Cochrane, Joshua
Department
Computer Science
Advisor(s)
Tian Zhao
Metadata
Show full item recordAbstract
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.
Subject
Arrows
Concurrency Analysis
JavaScript
Permanent Link
http://digital.library.wisc.edu/1793/91872Type
thesis
