  Increasing demands in software industry and scarcity of software engineers
motivates researchers and practitioners to automate the process of software
generation and configuration. Large scale automatic software generation and
configuration is a very complex and challenging task. In this proposal, we set
out to investigate this problem by breaking down automatic software generation
and configuration into two different tasks. In first task, we propose to
synthesize software automatically with input output specifications. This task
is further broken down into two sub-tasks. The first sub-task is about
synthesizing programs with a genetic algorithm which is driven by a neural
network based fitness function trained with program traces and specifications.
For the second sub-task, we formulate program synthesis as a continuous
optimization problem and synthesize programs with covariance matrix adaption
evolutionary strategy (a state-of-the-art continuous optimization method).
Finally, for the second task, we propose to synthesize configurations of large
scale software from different input files (e.g. software manuals,
configurations files, online blogs, etc.) using a sequence-to-sequence deep
learning mechanism.
