Modular Decompilation of Low-Level Code by Partial Evaluation

10 years 2 months ago
Modular Decompilation of Low-Level Code by Partial Evaluation
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-ofconcept that interpretive decompilation is feasible, but there 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 opt...
Miguel Gómez-Zamalloa, Elvira Albert, Germ&
Added 01 Jun 2010
Updated 01 Jun 2010
Type Conference
Year 2008
Where SCAM
Authors Miguel Gómez-Zamalloa, Elvira Albert, Germán Puebla
Comments (0)