Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. Computer Science and Artificial Intelligence Lab (CSAIL)
  3. CSAIL Digital Archive
  4. CSAIL Technical Reports (July 1, 2003 - present)
  5. Refactoring Sequential Java Code for Concurrency via Concurrent Libraries

Refactoring Sequential Java Code for Concurrency via Concurrent Libraries

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2008-057.pdf

Size

232.95 KB

Format

Adobe PDF

Checksum (MD5)

0983d545614d6dfbfecd6e476160206e

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2008-057.ps

Size

72.14 KB

Format

PostScript

Checksum (MD5)

a8abcd1db282215a11d18c51c68b8267

Author(s)
Ernst, Michael D.
•
Marrero, John
•
Dig, Danny
Advisor(s)
Michael Ernst
Date Issued
September 30, 2008
Series/Report no.
MIT-CSAIL-TR-2008-057
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.
Subjects
program transformations
concurrency
refactoring
library
Terms of Use
Creative Commons Attribution 3.0 Unported
http://creativecommons.org/licenses/by/3.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/42841
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.