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

01/21/2021
by   Rupak Majumdar, et al.
0

The model of asynchronous programming arises in many contexts, from low-level systems software to high-level web programming. We take a language-theoretic perspective and show general decidability and undecidability results for asynchronous programs that capture all known results as well as show decidability of new and important classes. As a main consequence, we show decidability of safety, termination and boundedness verification for higher-order asynchronous programs – such as OCaml programs using Lwt – and undecidability of liveness verification already for order-2 asynchronous programs. We show that under mild assumptions, surprisingly, safety and termination verification of asynchronous programs with handlers from a language class are decidable iff emptiness is decidable for the underlying language class. Moreover, we show that configuration reachability and liveness (fair termination) verification are equivalent, and decidability of these problems implies decidability of the well-known "equal-letters" problem on languages. Our results close the decidability frontier for asynchronous programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/09/2020

Context-Bounded Verification of Liveness Properties for Multithreaded Shared-Memory Programs

We study context-bounded verification of liveness properties of multi-th...
research
11/04/2022

This is not the End: Rethinking Serverless Function Termination

Elastic scaling is one of the central benefits provided by serverless pl...
research
09/14/2022

Automated Synthesis of Asynchronizations

Asynchronous programming is widely adopted for building responsive and e...
research
11/06/2018

On the Termination Problem for Probabilistic Higher-Order Recursive Programs

In the last two decades, there has been much progress on model checking ...
research
01/21/2021

Leafy Automata for Higher-Order Concurrency

Finitary Idealized Concurrent Algol (FICA) is a prototypical programming...
research
12/31/2019

Introduction to Rank-polymorphic Programming in Remora (Draft)

Remora is a higher-order, rank-polymorphic array-processing programming ...
research
01/11/2019

Static Analysis for Asynchronous JavaScript Programs

Asynchrony has become an inherent element of JavaScript, as an effort to...

Please sign up or login with your details

Forgot password? Click here to reset