Affiliation:
1. Google, USA
2. Microsoft Research, USA
Abstract
JavaScript code running in the Node.js runtime is a major platform for developers building cloud, mobile, or IoT applications. A fundamental concept in Node.js programming is the use of asynchronous callbacks and event loops to provide highly responsive applications. 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 executions 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
14 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Elysia: Optimizing JavaScript Web Framework;Proceedings of the 39th ACM/SIGAPP Symposium on Applied Computing;2024-04-08
2. μP: A Development Framework for Predicting Performance of Microservices by Design;2023 IEEE 16th International Conference on Cloud Computing (CLOUD);2023-07
3. λHive;International Journal of Cloud Applications and Computing;2022-10-26
4. Nessie;Proceedings of the 44th International Conference on Software Engineering;2022-05-21
5. Stateful Dynamic Partial Order Reduction for Model Checking Event-Driven Applications that Do Not Terminate;Lecture Notes in Computer Science;2022