  This paper focuses on Code Generation task that aims at generating relevant
code fragments according to given natural language descriptions. In the process
of software development, developers often encounter two scenarios. One is
requested to write a large amount of repetitive and low-technical code for
implementing common functionalities. The other is writing code that depends on
specific task requirements, which may necessitate the use of external resources
such as documentation or other tools. Therefore, code generation has received a
lot of attention among academia and industry for assisting developers in
coding. In fact, it has also been one of the key concerns in the field of
software engineering to make machines understand users' requirements and write
programs on their own. The recent development of deep learning techniques
especially pre-training models make the code generation task achieve promising
performance. In this paper, we systematically review the current work on deep
learning-based code generation and classify the current deep learning-based
code generation methods into three categories: methods based on code features,
methods incorporated with retrieval, and methods incorporated with
post-processing. The first category refers to the methods that use deep
learning algorithms for code generation based on code features, and the second
and third categories of methods improve the performance of the methods in the
first category. In this paper, the existing research results of each category
of methods are systematically reviewed, summarized and commented. Besides, the
paper summarizes and analyzes the corpus and the popular evaluation metrics
used in the existing code generation work. Finally, the paper summarizes the
overall literature review and provides a prospect on future research directions
worthy of attention.
