Towards ANSI C Program Slicing using XML

Abstract In this paper, we consider ANSI C program slicing using XML (Extensible Markup Language). Our goal is to build a flexible, useful and uniform data interchange format for CASE tools, which is a key issue to make it much easier to develop CASE tools such as program slicers. Although XML has a great potential for such data interchange formats, we first point out that there are still a lot of challenging problems to be solved. Then, as a first step to our goal, we introduce ACML (ANSI C Markup Language), which describes the syntactic structure and static semantics for ANSI C code. In our preliminary experiment, we had a good result; it took only 0.5 man-month to implement Weiser's slicer based on ACML, whereas it took about 2 man-months to implement an ANSI C parser and static semantics analyzer of XCI (Experimental C Interpreter).

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

[2]  Didier Parigot,et al.  SmartTools: a Generator of Interactive Environment Tools , 2001, Electron. Notes Theor. Comput. Sci..

[3]  Steven P. Reiss,et al.  Encoding program executions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[4]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[5]  Jürgen Ebert,et al.  GraX-an interchange format for reengineering tools , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[6]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[7]  Thomas Reps,et al.  The synthesizer generator , 1984 .

[8]  Claudio Sacerdoti Coen,et al.  SmartTools: A Development Environment Generator based on XML Technologies , 2001 .

[9]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[10]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

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

[12]  Steven V. Earhart UNIX programmer's manual , 1986 .

[13]  Ying Zou,et al.  Towards A Portable XML-based Source Code Representation , 2001 .

[14]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[15]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..