May-Happen-in-Parallel Analysis for Actor-Based Concurrency
Open Access
- 22 December 2015
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computational Logic
- Vol. 17 (2) , 1-39
Abstract
This article presents a may-happen-in-parallel (MHP) analysis for languages with actor-based concurrency . In this concurrency model, actors are the concurrency units such that, when a method is invoked on an actor a 2 from a task executing on actor a 1 , statements of the current task in a 1 may run in parallel with those of the (asynchronous) call on a 2 , and with those of transitively invoked methods. The goal of the MHP analysis is to identify pairs of statements in the program that may run in parallel in any execution. Our MHP analysis is formalized as a method-level ( local ) analysis whose information can be modularly composed to obtain application-level ( global ) information. The information yielded by the MHP analysis is essential to infer more complex properties of actor-based concurrent programs, for example, data race detection, deadlock freeness, termination, and resource consumption analyses can greatly benefit from the MHP relations to increase their accuracy. We report on MayPar, a prototypical implementation of an MHP static analyzer for a distributed asynchronous language.Keywords
This publication has 27 references indexed in Scilit:
- Termination and Cost Analysis of Loops with Concurrent Interleavings2013
- Scala Actors: Unifying thread-based and event-based programmingTheoretical Computer Science, 2009
- Efficient Computation of May-Happen-in-Parallel Information for Concurrent Java Programs2006
- A Practical MHP Information Analysis for Concurrent Java ProgramsLecture Notes in Computer Science, 2005
- Context-sensitive synchronization-sensitive analysis is undecidableACM Transactions on Programming Languages and Systems, 2000
- An efficient algorithm for computing MHP information for concurrent Java programsACM SIGSOFT Software Engineering Notes, 1999
- A conservative data flow algorithm for detecting all pairs of statements that may happen in parallelACM SIGSOFT Software Engineering Notes, 1998
- Monitor classificationACM Computing Surveys, 1995
- Complexity of analyzing the synchronization structure of concurrent programsActa Informatica, 1983
- Global Data Flow Analysis and Iterative AlgorithmsJournal of the ACM, 1976