• DocumentCode
    1994433
  • Title

    Refactoring sequential Java code for concurrency via concurrent libraries

  • Author

    Dig, Danny ; Marrero, John ; Ernst, Michael D.

  • Author_Institution
    Comput. Sci. & Artificial Intell. Lab., Massachusetts Inst. of Technol., Cambridge, MA
  • fYear
    2009
  • fDate
    16-24 May 2009
  • Firstpage
    397
  • Lastpage
    407
  • Abstract
    Parallelizing existing sequential programs to run efficiently on multicores is hard. The Java 5 package java.util.concurrent (j.u.c.) supports writing concurrent programs: much of the complexity of writing thread-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, that enables programmers to refactor sequential code into parallel code that uses three j.u.c. concurrent utilities. Concurrencer does not require any program annotations. Its transformations span multiple, non-adjacent, program statements. A find-and-replace tool can not perform such transformations, which require program analysis. 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.
  • Keywords
    Java; software libraries; software maintenance; concurrencer refactors code; concurrent libraries; java.util.concurrent; parallel code; program analysis; refactoring sequential Java code; Ash; Concurrent computing; Java; Libraries; Open source software; Packaging; Parallel processing; Programming profession; Writing; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on
  • Conference_Location
    Vancouver, BC
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-3453-4
  • Type

    conf

  • DOI
    10.1109/ICSE.2009.5070539
  • Filename
    5070539