Login

Refactoring Sequential Java Code for Concurrency via Concurrent Libraries

Show full item record




Title: Refactoring Sequential Java Code for Concurrency via Concurrent Libraries
Author: Ernst, Michael D.; Marrero, John; Dig, Danny
Other Contributors: Program Analysis
Advisor: Michael Ernst
Issue Date: 2008-09-30
Abstract: Parallelizing existing sequential programs to run efficiently on multicores is hard. The Java 5 packagejava.util.concurrent (j.u.c.) supports writing concurrent programs: much of the complexity of writing threads-safe and scalable programs is hidden in the library. To use this package, programmers still need to reengineer existing code. This is tedious because it requires changing many lines of code, is error-prone because programmers can use the wrong APIs, and is omission-prone because programmers can miss opportunities to use the enhanced APIs. This paper presents our tool, CONCURRENCER, which enables programmers to refactor sequential code into parallel code that uses j.u.c. concurrent utilities. CONCURRENCER does not require any program annotations, although the transformations are very involved: they span multiple program statements and use custom program analysis. A find-and-replace tool can not perform such transformations. Empirical evaluation shows that CONCURRENCER refactors code effectively: CONCURRENCER correctly identifies and applies transformations that some open-source developers overlooked, and the converted code exhibits good speedup.
URI: http://hdl.handle.net/1721.1/42841
Series/Report no.: MIT-CSAIL-TR-2008-057
Keywords: program transformations, concurrency, refactoring, library

Files in this item

Files Size Format View
MIT-CSAIL-TR-2008-057.pdf 238.5Kb PDF View/Open
MIT-CSAIL-TR-2008-057.ps 73.87Kb Postscript View/Open

The following license files are associated with this item:

This item appears in the following Collection(s)

Show full item record

Creative Commons Attribution 3.0 Unported Except where otherwise noted, this item's license is described as Creative Commons Attribution 3.0 Unported

Search DSpace@MIT


Advanced Search

Browse

My Account

Links