作者: Danny Dig , John Marrero , Michael D. Ernst
DOI: 10.1109/ICSE.2009.5070539
关键词: Software maintenance 、 Java 、 Program analysis 、 Concurrent computing 、 Computer science 、 Source lines of code 、 Code refactoring 、 Software engineering 、 Concurrency 、 Source code 、 Programming language
摘要: 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 thread-safe and scalable hidden in library. To use this package, programmers still need reengineer code. This tedious because it requires changing many lines code, error-prone can wrong APIs, omission-prone miss opportunities enhanced APIs. paper presents our tool, Concurrencer, that enables refactor code into parallel uses three j.u.c. utilities. Concurrencer does not require any program annotations. Its transformations span multiple, non-adjacent, statements. A find-and-replace tool perform such transformations, which analysis. Empirical evaluation shows refactors effectively: correctly identifies applies some open-source developers overlooked, converted exhibits good speedup.