DocumentCode :
3008600
Title :
Modular Decompilation of Low-Level Code by Partial Evaluation
Author :
Gomez-Zamalloa, M. ; Albert, Elvira ; Puebla, Germán
Author_Institution :
DSIC, Complutense Univ. of Madrid, Madrid
fYear :
2008
fDate :
28-29 Sept. 2008
Firstpage :
239
Lastpage :
248
Abstract :
Decompiling low-level code to a high-level intermediate representation facilitates the development of analyzers, model checkers, etc. which reason about properties of the low-level code (e.g., bytecode, .NET). Interpretive decompilation consists in partially evaluating an interpreter for the low-level language (written in the high-level language) w.r.t. the code to be decompiled. There have been proofs-of-concept that interpretive decompilation is feasible, butt here remain important open issues when it comes to decompile a real language: does the approach scale up? is the quality of decompiled programs comparable to that obtained by ad-hoc decompilers? do decompiled programs preserve the structure of the original programs? This paper addresses these issues by presenting, to the best of our knowledge, the first modular scheme to enable interpretive decompilation of low-level code to a high-level representation, namely, we decompile bytecode into PROLOG. We introduce two notions of optimality. The first one requires that each method/block is decompiled just once. The second one requires that each program point is traversed at most once during decompilation. 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 demostrates empirically the scalability of modular decompilation of low-level code by partial evaluation.
Keywords :
PROLOG; partial evaluation (compilers); program interpreters; specification languages; PROLOG; ad-hoc decompiler; bytecode program; declarative language; high-level intermediate code representation; interpretive decompilation; low-level language interpreter; modular low-level code decompilation; partial evaluation; program decompilation; Automatic control; Computer languages; Educational programs; Educational technology; High level languages; Java; Logic programming; Magneto electrical resistivity imaging technique; Scalability; Societies; bytecode; decompilation; partial evaluation;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Source Code Analysis and Manipulation, 2008 Eighth IEEE International Working Conference on
Conference_Location :
Beijing
Print_ISBN :
978-0-7695-3353-7
Type :
conf
DOI :
10.1109/SCAM.2008.35
Filename :
4637556
Link To Document :
بازگشت