Neural Program Synthesis By Self-Learning
This addresses program synthesis for low-level code generation, though it appears incremental with specific algorithmic improvements.
The paper tackles neural program synthesis for generating assembly code matching CPU/RAM state changes, developing AutoAssemblet using self-learning reinforcement learning with policy/value networks and multi-entropy sampling. It shows significantly higher success rates on basic programming tasks compared to baselines.
Neural inductive program synthesis is a task generating instructions that can produce desired outputs from given inputs. In this paper, we focus on the generation of a chunk of assembly code that can be executed to match a state change inside the CPU and RAM. We develop a neural program synthesis algorithm, AutoAssemblet, learned via self-learning reinforcement learning that explores the large code space efficiently. Policy networks and value networks are learned to reduce the breadth and depth of the Monte Carlo Tree Search, resulting in better synthesis performance. We also propose an effective multi-entropy policy sampling technique to alleviate online update correlations. We apply AutoAssemblet to basic programming tasks and show significant higher success rates compared to several competing baselines.