• Home
  • Search
  • Algorithmic verification of asynchronous programs
  • Open Access IconOpen Access
  • Cite Icon97
  • https://doi.org/10.1145/2160910.2160915Copy DOI Icon

Algorithmic verification of asynchronous programs

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Asynchronous programming is a ubiquitous systems programming idiom for managing concurrent interactions with the environment. In this style, instead of waiting for time-consuming operations to complete, the programmer makes a non-blocking call to the operation and posts a callback task to a task buffer that is executed later when the time-consuming operation completes. A cooperative scheduler mediates the interaction by picking and executing callback tasks from the task buffer to completion (and these callbacks can post further callbacks to be executed later). Writing correct asynchronous programs is hard because the use of callbacks, while efficient, obscures program control flow. We provide a formal model underlying asynchronous programs and study verification problems for this model. We show that the safety verification problem for finite-data asynchronous programs is expspace-complete. We show that liveness verification for finite-data asynchronous programs is decidable and polynomial-time equivalent to Petri net reachability. Decidability is not obvious, since even if the data is finite-state, asynchronous programs constitute infinite-state transition systems: both the program stack for an executing task and the task buffer of pending calls to tasks can be potentially unbounded. Our main technical constructions are polynomial-time, semantics-preserving reductions from asynchronous programs to Petri nets and back. The first reduction allows the use of algorithmic techniques on Petri nets for the verification of asynchronous programs, and the second allows lower bounds on Petri nets to apply also to asynchronous programs. We also study several extensions to the basic models of asynchronous programs that are inspired by additional capabilities provided by implementations of asynchronous libraries and classify the decidability and undecidability of verification questions on these extensions.

Similar Papers
  • Preprint Article
  • Citations1

General Decidability Results for Asynchronous Shared-Memory Programs: Higher-Order and Beyond

  • Mar 23, 2021
  • Georg Zetzsche +2
  • Conference Article
  • Citations12

Static deadlock detection for asynchronous C# programs

  • Jun 14, 2017
  • Anirudh Santhiar +1
  • Conference Article

Exploring the Reactive Extensions in JavaScript

  • Jan 01, 2015
  • Matthew Podwysocki
  • Research Article
  • Citations2

Static deadlock detection for asynchronous C# programs

  • Jun 14, 2017
  • ACM SIGPLAN Notices
  • Anirudh Santhiar +1
  • Book Chapter
  • Citations1

Finding Divergent Executions in Asynchronous Programs

  • Jan 01, 2016
  • Mohamed A El-Zawawy
  • Book Chapter

Introduction to Asynchronous Programming in .NET

  • Jan 01, 2013
  • Tugberk Ugurlu +2
  • Conference Article
  • Citations3

Short Paper: Asynchronous programming with Tarragon

  • Jul 10, 2006
  • S.B Baden +1
  • Research Article
  • Citations3

Verification of Concurrent Assembly Programs with a Petri Net Based Safety Policy

  • Dec 01, 2007
  • Tsinghua Science & Technology
  • Shengyuan Wang +2
  • Research Article
  • Citations5

Verification of Programs with Mutual Recursion in Pifagor Language

  • Dec 01, 2018
  • Automatic Control and Computer Sciences
  • M S Ushakova +1
  • Research Article
  • Citations9

From strong to exact Petri net computers

  • Nov 03, 2021
  • International Journal of Parallel, Emergent and Distributed Systems
  • Dmitry A Zaitsev +1
  • Book Chapter
  • Citations35

Approaching the Coverability Problem Continuously

  • Jan 01, 2016
  • Michael Blondin +3
  • Conference Article
  • Citations11

Declarative specification of system independent logic controller programs

  • Jun 17, 1996
  • M.A Adamski +1
  • Conference Article
  • Citations9

Towards Self-Managed Executable Petri Nets

  • Oct 01, 2008
  • Klaus Marius Hansen +2
  • Conference Article
  • Citations1

General conversion of integer programming problems into optimal firing sequence problem of Petri nets

  • Dec 01, 2016
  • Akito Kodama +1
  • Research Article

Modeling of parallel program synchronization primitives

  • Jun 28, 2025
  • Modeling and Analysis of Information Systems
  • Oleg S Kryukov +2
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.