Paraphrasing: Generating parallel programs using refactoring
F.S. de Boer
|Title||Paraphrasing: Generating parallel programs using refactoring|
|Booktitle||Formal Methods for Components and Objects - Proc. FMCO 2011|
|Series||Lecture Notes in Computer Science|
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.