Title :
Decompiling Java using staged encapsulation
Author :
Miecznikowski, Jerome ; Hendren, Laurie
Author_Institution :
Sch. of Comput. Sci., McGill Univ., Montreal, Que., Canada
fDate :
6/23/1905 12:00:00 AM
Abstract :
The paper presents an approach to program structuring for use in decompiling Java bytecode to Java source. The structuring approach uses three intermediate representations: (1) a list of typed, aggregated statements with an associated exception table, (2) a control flow graph, and (3) a structure encapsulation tree. The approach works in six distinct stages, with each stage focusing on a specific family of Java constructs, and each stage contributing more detail to the structure encapsulation tree. After completion of all stages the structure encapsulation tree contains enough information to allow a simple extraction of a structured Java program. The approach targets general Java bytecode including bytecode that may be the result of front-ends for languages other than Java, and also bytecode that has been produced by a bytecode optimizer. Thus, the techniques have been designed to work for bytecode that may not exhibit the typical structured patterns of bytecode produced by a standard Java compiler. The structuring techniques have been implemented as part of the Dava decompiler which has been built using the Soot framework
Keywords :
Java; data encapsulation; flow graphs; program compilers; Dava decompiler; Java bytecode; Java constructs; Java decompilation; Java source; Soot framework; bytecode optimizer; control flow graph; exception table; intermediate representations; program structuring; standard Java compiler; structure encapsulation tree; structured Java program; structured patterns; structuring approach; typed aggregated statements; Computer science; Constraint optimization; Data mining; Design optimization; Encapsulation; High level languages; Java; Pattern matching; Tree graphs; Visualization;
Conference_Titel :
Reverse Engineering, 2001. Proceedings. Eighth Working Conference on
Conference_Location :
Stuttgart
Print_ISBN :
0-7695-1303-4
DOI :
10.1109/WCRE.2001.957845