Search papers, labs, and topics across Lattice.
This paper introduces novel sequence-to-sequence architectures tailored for direct and indirect indexing by permutation, motivated by reference rewriting challenges in decompilation. The authors demonstrate that standard sequence-to-sequence models struggle on synthetic benchmarks designed to mimic these indexing tasks. Their proposed architectures significantly outperform baselines in robustness and scalability, handling sequences ten times longer and reducing error rates by 42% in decompiling switch statements.
Existing sequence-to-sequence architectures falter at reference rewriting tasks, but a new architecture can handle 10x longer sequences and slashes decompilation errors by 42%.
Resolving and rewriting references is fundamental in programming languages. Motivated by a real-world decompilation task, we abstract reference rewriting into the problems of direct and indirect indexing by permutation. We create synthetic benchmarks for these tasks and show that well-known sequence-to-sequence machine learning architectures are struggling on these benchmarks. We introduce new sequence-to-sequence architectures for both problems. Our measurements show that our architectures outperform the baselines in both robustness and scalability: our models can handle examples that are ten times longer compared to the best baseline. We measure the impact of our architecture in the real-world task of decompiling switch statements, which has an indexing subtask. According to our measurements, the extended model decreases the error rate by 42%. Multiple ablation studies show that all components of our architectures are essential.