Compile-time analysis of parallel programs that share memory

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

Abstract

Traditional optimization techniques for sequential programs are not directly applicable to parallel programs where concurrent activities may interfere with each other through shared variables. New compiler techniques must be developed to accommodate features found in parallel languages. In this paper, we use abstract interpretation to obtain useful properties of programs, e.g., side effects, data dependences, object lifetime and concurrent expressions, for a language that supports first-class functions, pointers, dynamic allocations and explicit parallelism through cobegin. These analyses may facilitate many applications, such as program optimization, parallelization, restructuring, memory management, and detecting access anomalies. Our semantics is based on a labeled transition system and is instrumented with procedure strings to record the procedural/concurrency movement along the program interpretation. We develop analyses in both concrete domains and abstract domains, and prove the correctness and termination of the abstract interpretation.

Cite

CITATION STYLE

APA

Chow, J. H., & Harrison, W. L. (1992). Compile-time analysis of parallel programs that share memory. In Conference Record of the Annual ACM Symposium on Principles of Programming Languages (pp. 130–141). Publ by ACM. https://doi.org/10.1145/143165.143194

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