Special issue on source code analysis and manipulation (SCAM 2006)

The aim of SCAM is to bring together researchers and practitioners working on theory, techniques and applications, concerning analysis and/or manipulation of the source code of computer systems. While much attention in the wider software engineering community is properly directed toward other aspects of systems' development and evolution, such as specification, design and requirements engineering, it is the source code that contains the only precise description of the behavior of the system. The analysis and manipulation of source code thus remain pressing concerns. Whereas several conferences and workshops address the applications of source code analysis and manipulation , the aim of SCAM is to focus on the algorithms and tools themselves—what they can achieve; and how they can be improved, refined and combined. Held for the first time with ICSM 2001 in Florence, SCAM has been a very successful event for the last six years, with a continuously increasing attendance and number of submissions; such that it has been transformed, starting from 2007, to a working conference. Over the years, SCAM has grown its unique format, consisting of a two-day event filled with technical sessions that have plenty of time allocated to discussions. Each technical session is structured around three short presentations (15 min) followed by 45 min open discussion that is initiated by controversial questions and issues raised by the authors of the papers presented. All attendees are encouraged to write their ideas and comments on transparencies, rather than merely contributing verbally. These transparencies are then collected and scanned for publication on the SCAM Web site *. In 2006, out of 48 submissions, 20 excellent papers were selected to be presented at the workshop, together with an inspiring keynote on 'Slicing concurrent Java programs with Indus' by John Hatcliff from Kansas State University. The accepted papers covered a broad range of topics in source code analysis and manipulation, such as slicing, refactoring, transformations, abstract interpretation, static analysis and verification. After the workshop, four outstanding papers selected by the program chairs were invited for publication in this Journal of Software Maintenance and Evolution: Research and Practice special issue. The authors of the selected papers were asked to prepare a significant extension on the workshop version of their papers. Each paper underwent a rigorous reviewing