TY - GEN
T1 - Partial-evaluation techniques for concurrent programs
AU - Marinescu, Mihnea
AU - Goldberg, Benjamin
PY - 1997
Y1 - 1997
N2 - 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 nondetermin-istic 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 nonde-terminism 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.
AB - 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 nondetermin-istic 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 nonde-terminism 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.
KW - Binding-time analysis
KW - CSP
KW - Concurrency
KW - Nondeterminism
KW - Partial evaluation
UR - http://www.scopus.com/inward/record.url?scp=0030720231&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0030720231&partnerID=8YFLogxK
U2 - 10.1145/258993.259002
DO - 10.1145/258993.259002
M3 - Conference contribution
AN - SCOPUS:0030720231
SN - 0897919173
SN - 9780897919173
T3 - Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation
SP - 47
EP - 62
BT - Proceedings of the 1997 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 1997
PB - Association for Computing Machinery
T2 - 1997 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 1997
Y2 - 12 June 1997 through 13 June 1997
ER -