Lightweight Transformation and Fact Extraction with the srcML Toolkit

The srcML toolkit for lightweight transformation and fact-extraction of source code is described. srcML is an XML format for C/C++/Java source code. The open source toolkit that includes the source-to-srcML and srcML-to-source translators for round-trip reverse engineering is freely available. The direct use of XPath and XSLT is supported, an archive format for large projects is included, and a rich set of input and output formats through a command-line interface is available. Applying transformations and formulating queries using srcML is very convenient. Application use-cases of transformations and fact-extraction are shown and demonstrated to be practical and scalable.

[1]  Jonathan I. Maletic,et al.  Supporting source code difference analysis , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[2]  Bin Yao,et al.  High-fidelity C/C++ code transformation , 2005, Sci. Comput. Program..

[3]  Michael L. Collard,et al.  Enforcing Constraints Between Documentary Comments and Source Code , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[4]  Jonathan I. Maletic,et al.  An XML-Based Lightweight C++ Fact Extractor , 2003, IWPC.

[5]  Michael L. Van de Vanter,et al.  The documentary structure of source code , 2002, Inf. Softw. Technol..

[6]  James R. Cordy,et al.  Comprehending reality - practical barriers to industrial adoption of software maintenance automation , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[7]  George C. Necula,et al.  CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs , 2002, CC.

[8]  Kevin A. Schneider,et al.  Source transformation in software engineering using the TXL transformation system , 2002, Inf. Softw. Technol..

[9]  Charles L. A. Clarke,et al.  Relocating XML elements from preprocessed to unprocessed code , 2002, Proceedings 10th International Workshop on Program Comprehension.

[10]  Andrian Marcus,et al.  Source code files as structured documents , 2002, Proceedings 10th International Workshop on Program Comprehension.

[11]  Michael L. Collard,et al.  Document-Oriented Source Code Transformation using XML , 2004 .

[12]  Ralf Lämmel,et al.  Parse-tree annotations meet re-engineering concerns , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[13]  Jonathan I. Maletic,et al.  A lightweight transformational approach to support large scale adaptive changes , 2010, 2010 IEEE International Conference on Software Maintenance.

[14]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

[15]  Paul Klint,et al.  How understanding and restructuring differ from compiling -a rewriting perspective , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[16]  I.D. Baxter,et al.  DMS/spl reg/: program transformations for practical scalable software evolution , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  Jonathan I. Maletic,et al.  Reverse Engineering Method Stereotypes , 2006, 2006 22nd IEEE International Conference on Software Maintenance.