Partial-Evaluation Techniques for Concurrent Programs

Mihnea Marinescu, Benjamin Goldberg

Research output: Contribution to journalArticle

Abstract

This paper presents an application of partial evaluation (program specialization) techniques to concurrent programs. The language chosen for this investigation is a very simple CSP-like language. A standard binding-time analysis for imperative languages is extended in order to deal with the basic concurrent constructs (synchronous communication and nondeterministic choice). Based on the binding-time annotations, a specialization transformation is defined and proved correct. In order to maintain a simple and clear presentation, the specialization algorithm addresses only the data transfer component of the communication; partial evaluation, the way it is defined here, always generates residual synchronizations. However, a simple approximate analysis for detecting and removing redundant synchronizations from the residual program (i.e. synchronizations whose removal does not increase the nondeterminism of a program) can be performed. The paper also addresses pragmatic concerns such as improving the binding-time analysis, controlling loop unrolling and the consequences of lifting nondeterminism from run-time to specialization-time. Finally, the power of the newly developed technique is shown in several examples.

Original languageEnglish (US)
Pages (from-to)47-60
Number of pages14
JournalSIGPLAN Notices (ACM Special Interest Group on Programming Languages)
Volume32
Issue number12
StatePublished - Dec 1 1997

    Fingerprint

Keywords

  • Binding-time analysis
  • CSP
  • Concurrency
  • Nondeterminism
  • Partial evaluation

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design

Cite this