2019 · Conference paper

Coda: An End-to-End Neural Program Decompiler

Coda decompiles the assembly of short functions into C in two phases. An instruction-type-aware N-ary Tree-LSTM encoder and an attention-fed AST decoder first generate a code sketch; an ensemble of neural error predictors then proposes token corrections, each kept only if recompiling the candidate does not increase its edit distance to the input assembly. On synthetic benchmarks the authors report 82% average program accuracy after correction, against 12% for a sequence-to-sequence baseline with attention.

Scope and limitations

Training and test programs are randomly generated from Karel commands, math.h calls and arithmetic or logical expressions, in short and long variants (average length 15 and 30), 50,000 pairs per task, compiled without optimization: clang -O0 for the main MIPS results and gcc -O0 for an x86-64 appendix that reports sketch token accuracy only, about 6% lower on average. Real-world checks are small PyTorch C++ API model-construction and Hacker's Delight loop-free programs. Program accuracy requires an exact token match with the ground-truth source, the metric under which the paper reports 0% for conventional decompilers. Error correction assumes the compiler configuration is known, and token accuracy drops for longer programs. The results show neither optimized, whole-program nor binary-equivalent decompilation, and the paper names no author implementation.

Why it fits this collection

Adds an early (2019) end-to-end neural decompiler that pairs learned code generation with compiler-checked iterative correction, predating the LLM-based decompilation papers in this section.

Publication and review details

Venue
NeurIPS 2019
Status
Conference paper
Publication / posting date
2019 (exact date not verified)
Date source
The NeurIPS proceedings page and its metadata give publication year 2019 (Advances in Neural Information Processing Systems 32). No publication day is asserted; neither the December conference dates nor the June 2019 arXiv submission is substituted.
First arXiv submission
June 28, 2019
arXiv
1906.12029
Reviewed arXiv version
v1

The sole arXiv version, v1 of 2019-06-28, is titled 'A Neural-based Program Decompiler' and lists the same seven authors; this record uses the proceedings title. NeurIPS metadata gives Advances in Neural Information Processing Systems 32, pages 3708–3719; the proceedings page lists no DOI. A footnote expands Coda as CodeAttack. The proceedings supplemental ZIP holds one appendix PDF with dataset statistics, hyper-parameters, the x86-64 table and RetDec examples. The paper cites third-party disassemblers (mipt-mips, REDasm) but no author code, data or model release. No code or experiments were run.

Sources reviewed

Source review only; experiments were not rerun for this collection. Cite the original authors using the linked paper or BibTeX.

Primary sources

  1. https://proceedings.neurips.cc/paper_files/paper/2019/hash/093b60fd0557804c8ba0cbf1453da22f-Abstract.html
  2. https://proceedings.neurips.cc/paper_files/paper/2019/file/093b60fd0557804c8ba0cbf1453da22f-Metadata.json
  3. https://proceedings.neurips.cc/paper_files/paper/2019/file/093b60fd0557804c8ba0cbf1453da22f-Paper.pdf
  4. https://proceedings.neurips.cc/paper_files/paper/2019/file/093b60fd0557804c8ba0cbf1453da22f-Supplemental.zip
  5. https://arxiv.org/abs/1906.12029v1