• DocumentCode
    1665166
  • Title

    Decompiling Java using staged encapsulation

  • Author

    Miecznikowski, Jerome ; Hendren, Laurie

  • Author_Institution
    Sch. of Comput. Sci., McGill Univ., Montreal, Que., Canada
  • fYear
    2001
  • fDate
    6/23/1905 12:00:00 AM
  • Firstpage
    368
  • Lastpage
    374
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering, 2001. Proceedings. Eighth Working Conference on
  • Conference_Location
    Stuttgart
  • ISSN
    1095-1350
  • Print_ISBN
    0-7695-1303-4
  • Type

    conf

  • DOI
    10.1109/WCRE.2001.957845
  • Filename
    957845