Reverse Engineering Scripting Language Extensions

Software systems are often written in more than one programming language. During development, programmers need to understand not only the dependencies among code in a particular language, but dependencies that span languages. In this paper, we focus on the problem of scripting languages (such as Perl) and their extension mechanisms to calling functions with a C interface. Our general approach involves building a fact extractor for each scripting language, by hooking into the language interpreter itself. The produced facts conform to a common schema, and an analyzer is extended to recognize the cross-language dependencies. We present how these statically discovered dependencies can be represented, visualized, and explored in the Eclipse environment

[1]  Richard C. Holt,et al.  A Visual Architectural Approach to Maintaining Web Applications , 2003 .

[2]  Kenny Wong,et al.  Extracting and representing cross-language dependencies in diverse software systems , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[3]  Allison Randal Perl 6 and Parrot Essentials , 2004 .

[4]  Panagiotis K. Linos,et al.  A tool for understanding multi-language program dependencies , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[5]  Larry Wall,et al.  Programming Perl , 1991 .

[6]  Nouredine Melab,et al.  Analysis and manipulation of distributed multi-language software code , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[7]  Jürgen Ebert,et al.  Program comprehension in multi-language systems , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[8]  Kenny Wong,et al.  An industrial experience in reverse engineering , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[9]  Jeffrey L. Korn,et al.  Chava: reverse engineering and tracking of Java applets , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[10]  Richard C. Holt,et al.  Architecture recovery of web applications , 2002, ICSE '02.