English

Adabot: Fault-Tolerant Java Decompiler

Software Engineering 2019-10-16 v2 Computation and Language

Abstract

Reverse Engineering(RE) has been a fundamental task in software engineering. However, most of the traditional Java reverse engineering tools are strictly rule defined, thus are not fault-tolerant, which pose serious problem when noise and interference were introduced into the system. In this paper, we view reverse engineering as a statistical machine translation task instead of rule-based task, and propose a fault-tolerant Java decompiler based on machine translation models. Our model is based on attention-based Neural Machine Translation (NMT) and Transformer architectures. First, we measure the translation quality on both the redundant and purified datasets. Next, we evaluate the fault-tolerance(anti-noise ability) of our framework on test sets with different unit error probability (UEP). In addition, we compare the suitability of different word segmentation algorithms for decompilation task. Experimental results demonstrate that our model is more robust and fault-tolerant compared to traditional Abstract Syntax Tree (AST) based decompilers. Specifically, in terms of BLEU-4 and Word Error Rate (WER), our performance has reached 94.50% and 2.65% on the redundant test set; 92.30% and 3.48% on the purified test set.

Keywords

Cite

@article{arxiv.1908.06748,
  title  = {Adabot: Fault-Tolerant Java Decompiler},
  author = {Zhiming Li and Qing Wu and Kun Qian},
  journal= {arXiv preprint arXiv:1908.06748},
  year   = {2019}
}

Comments

8 pages

R2 v1 2026-06-23T10:50:54.341Z