Analyzing the communication topology of concurrent programs

24Citations
Citations of this article
13Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Concurrent languages present complex problems for program analysis. Existing analyses are either imprecise, exponential, or apply only to languages with statically-allocated processes and channels. We present a new polynomial-time analysis using abstract interpret ation that addresses the general problem of determining the communication topology of programs in a subset of Concurrent ML with arbitrary data structures, recursive higher-order functions, dynamic processor allocation, dynamic channel creation, and synchronous message-passing operations transmit and receive. The analysis addresses the following question: Whtch occurrences o~transmit can match whzch occurrences of receive? The notion of occurrence is formalized as a control path in a small-step semantics, which provides a powerful basis for distinguishing recursive communication topologies. The analysis is relational, in that it relates pairs of processes, and non-rmi~orm, in that it distinguishes between iterations in an infinite recursive communication pattern. The results are thus precise enough to aid processor allocation, scheduling, and sequentialization on both uniprocessors and multiprocessors.

Cite

CITATION STYLE

APA

Colby, C. (1995). Analyzing the communication topology of concurrent programs. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Vol. Part F129370, pp. 202–213). Association for Computing Machinery. https://doi.org/10.1145/215465.215592

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free