Paraphrasing: Generating parallel programs using refactoring

Authors Christopher Brown
Kevin Hammond
Marco Danelutto
Peter Kilpatrick
Holger Schöner
Tino Breddin
Editors B. Beckert
F. Damiani
F.S. de Boer
M.M. Bonsangue
Title Paraphrasing: Generating parallel programs using refactoring
Booktitle Formal Methods for Components and Objects - Proc. FMCO 2011
Type in proceedings
Publisher Springer
Series Lecture Notes in Computer Science
Volume 7542
ISBN 978-3-642-35886-9
Month January
Year 2013
Pages 237-256
SCCH ID# 1303

Refactoring is the process of changing the structure of a pro-gram without changing its behaviour. Refactoring has so far only really been deployed effectively for sequential programs. However, with the in-creased availability of multicore (and, soon, manycore) systems, refactoring can play an important role in helping both expert and non-expert parallel programmers structure and implement their parallel programs. This paper describes the design of a new refactoring tool that is aimed at increasing the programmability of parallel systems. To motivate our de-sign, we refactor a number of examples in C, C++ and Erlang into good parallel implementations, using a set of formal pattern rewrite rules.