arrow
Return

Decompilation of Java bytecode to Prolog by partial evaluation

delete2009-10-01
delete19
PRE
AI
M
Miguel Gómez‐Zamalloa *
E
Elvira Albert
G
Germán Puebla
DOI:10.1016/j.infsof.2009.04.010delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Reasoning about Java bytecode (JBC) is complicated due to its unstructured control-flow, the use of three-address code combined with the use of an operand stack, etc. Therefore, many static analyzers and model checkers for JBC first convert the code into a higher-level representation. In contrast to traditional decompilation, such representation is often not Java source, but rather some intermediate language which is a good input for the subsequent phases of the tool. Interpretive decompilation consists in partially evaluating an interpreter for the compiled language (in this case JBC) written in a high-level language with respect to the code to be decompiled. There have been proofs-of-concept that interpretive decompilation is feasible, but there remain important open issues when it comes to decompile a real language such as JBC. This paper presents, to the best of our knowledge, the first modular scheme to enable interpretive decompilation of a realistic programming language to a high-level representation, namely of JBC to Prolog. We introduce two notions of optimality, which together require that decompilation does not generate code more than once for each program point. We demonstrate the impact of our modular approach and optimality issues on a series of realistic benchmarks. Decompilation times and decompiled program sizes are! linear with the size of the input bytecode program. This demonstrates empirically the scalability, of modular decompilation of JBC by partial evaluation. (C) 2009 Elsevier B.V. All rights reserved.
Keywords:
Program transformation
Partial evaluation
Decompilation
Interpreters
Java bytecode
Logic programming
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Information and Software Technology cover
Information and Software Technology
IF:
4.3
Papers:
3.8K
Citations:
7.7K

Organization

U
Universidad Politecnica de Madrid
Scholars:
1.4W
Papers: 1.2W
Citations: 10
C
Complutense University of Madrid
Scholars:
2.6W
Papers: 2.2W
Citations: 31
Cited Papers

Cited Papers

errShare
errSave
errShare
errSave
p-Cresyl glucuronide is a major metabolite of p-cresol in mouse: in contrast to p-cresyl sulphate, p-cresyl glucuronide fails to promote insulin resistance
err2017-08-03
err0
errOAAI
errLaetitia Koppe; Pascaline M Alix; Marine L Croze; Stéphane Chambert; Raymond Vanholder; Griet Glorieux; Denis Fouque; Christophe O Soulage
errShare
errSave
Hybrid Fabrication of Biomimetic Meniscus Scaffold by 3D Printing and Parallel Electrospinning
err2019-01-01
err0
errOAAI
errDilshan Sooriyaarachchi; Jiaxin Wu; Aixin Feng; Maksud Islam; George Z Tan
errShare
errSave
Software unit test coverage and adequacy
err1997-12-01
err689
PREAI
errZhu, H; Hall, PAV; May, JHR
errShare
errSave
errShare
errSave
Regional balance between glutamate+glutamine and GABA+ in the resting human brain
err2020-10-01
err0
errOAAI
errAdam Steel; Mark Mikkelsen; Richard A.E. Edden; Caroline E. Robertson
errShare
errSave
no more