An XML C Source Code Interchange Format for CASE Tools

We propose an XML C source code representation to support developing CASE tools. Since source code is a main artifact of software development, most CASE tools have some features related to source code editor, static analyzer, profiler, etc. To develop such tools, detailed information related to source code is needed. However, it is quite difficult to reuse program analysis features because they do not have common interfaces even for parsing and data/control-flow analysis that are most common features for such CASE tools. To address this issue, we focus on XML as an intermediate representation for source code information. Existing XML representations only represent structure of syntax trees and lack some important information required for CASE tools. We propose two models for representing source code, one is for intra-file information, which consists of syntax structure, flow, and type information, the other is for inter-file relation, which is cross-reference information. We also introduce CASE tools with our representation and demonstrate the efficacy in CASE tool development. To evaluate the efficacy, we show that a coding rule checker and a cross-referencer can be easily implemented using common XML processing libraries such as XSLT and XPath.

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

[2]  Shinichiro Yamamoto,et al.  A CASE tool platform using an XML representation of Java source code , 2004, Source Code Analysis and Manipulation, Fourth IEEE International Workshop on.

[3]  Roy Oberhauser,et al.  XML-based programming language modeling: An approach to software engineering , 2004, IASTED Conf. on Software Engineering and Applications.

[4]  Brian A. Malloy,et al.  Program annotation in XML: a parse-tree based approach , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[5]  T. H. Tse,et al.  Lean Implementations of Software Testing Tools Using XML Representations of Source Codes , 2008, 2008 International Conference on Computer Science and Software Engineering.

[6]  Kostas Kontogiannis,et al.  An XML-based framework for language neutral program representation and generic analysis , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[7]  John Mylopoulos,et al.  An extensible tool for source code representation using XML , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[8]  Kiyoshi Agusa,et al.  An Evolution Framework based on Fine Grained Repository , 1999 .

[9]  Jonathan I. Maletic Leveraging XML technologies in developing program analysis tools , 2004, ICSE 2004.

[10]  Greg J. Badros JavaML: a markup language for Java source code , 2000, Comput. Networks.

[11]  Andrian Marcus,et al.  Supporting document and data views of source code , 2002, DocEng '02.

[12]  Katsuhiko Gondow,et al.  Experience with ANSI C markup language for a cross-referencer , 2003, 36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the.

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

[14]  Katsuhiko Gondow,et al.  Towards ANSI C Program Slicing using XML , 2002, Electron. Notes Theor. Comput. Sci..

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

[16]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[17]  Greg J. Badros,et al.  JavaML 2 . 0 : Enriching the Markup Language for Java Source Code , 2004 .