Semantics of asynchronous JavaScript

Matthew C. Loring, Mark Marron, Daan Leijen

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

16 Scopus citations

Abstract

The Node.js runtime has become a major platform for developers building cloud, mobile, or IoT applications using JavaScript. Since the JavaScript language is single threaded, Node.js programs must make use of asynchronous callbacks and event loops managed by the runtime to ensure applications remain responsive. While conceptually simple, this programming model contains numerous subtleties and behaviors that are defined implicitly by the current Node.js implementation. This paper presents the first comprehensive formalization of the Node.js asynchronous execution model and defines a high-level notion of async-contexts to formalize fundamental relationships between asynchronous events in an application. These formalizations provide a foundation for the construction of static or dynamic program analysis tools, support the exploration of alternative Node.js event loop implementations, and provide a high-level conceptual framework for reasoning about relationships between the execution of asynchronous callbacks in a Node.js application.

Original languageEnglish
Title of host publicationDLS 2017 - Proceedings of the 13th ACM SIGPLAN International Symposium on Dynamic Languages, co-located with SPLASH 2017
EditorsDavide Ancona
Pages51-62
Number of pages12
ISBN (Electronic)9781450355261
DOIs
StatePublished - Oct 24 2017
Event13th ACM SIGPLAN International Symposium on Dynamic Languages, DLS 2017 - Vancouver, Canada
Duration: Oct 24 2017 → …

Publication series

NameDLS 2017 - Proceedings of the 13th ACM SIGPLAN International Symposium on Dynamic Languages, co-located with SPLASH 2017

Conference

Conference13th ACM SIGPLAN International Symposium on Dynamic Languages, DLS 2017
Country/TerritoryCanada
CityVancouver
Period10/24/17 → …

Bibliographical note

Publisher Copyright:
© 2017 Copyright held by the owner/author(s).

Keywords

  • Asynchrony
  • JavaScript

ASJC Scopus subject areas

  • Computer Science Applications
  • Computational Theory and Mathematics
  • Computer Networks and Communications
  • Software

Fingerprint

Dive into the research topics of 'Semantics of asynchronous JavaScript'. Together they form a unique fingerprint.

Cite this