Abstract :
Scripting languages are popular in software development, for rapid prototyping and flexible software integration. Still, there has been relatively more effort spent on reverse engineering for traditional languages, like C, C++, and Java. Certain scripting languages, such as Perl, are notoriously difficult to understand. Consequently, reverse engineering for Perl code is very much needed. Nevertheless, the subtle constructs of the language make it challenging to develop a reliable fact extractor from scratch. Thus, we use the Perl interpreter implementation itself, since it is authoritative for the meaning of some Perl construct. An extractor component is inserted into the interpreter, to consult the internal data structures, and generate the desired facts in a static extraction technique. The facts conform to a schema that is represented in GXL and EMF XML-based formats. A case study evaluated how the extractor processed all the Perl modules provided with the Perl distribution source code
Keywords :
C++ language; Java; Perl; XML; automatic programming; data structures; integrated software; program diagnostics; program interpreters; reverse engineering; software prototyping; software reliability; C++; EMF XML-based formats; GXL; Java; Perl code; Perl distribution source code; Perl interpreter; extractor component; fact extractor; flexible software integration; internal data structures; rapid prototyping; reverse engineering; scripting languages; software development; static extraction technique; Algorithms; Computer languages; Data mining; Data structures; Java; Natural languages; Programming; Reverse engineering; Software prototyping; Writing;