ISSN 1000-1239 CN 11-1777/TP

Journal of Computer Research and Development ›› 2021, Vol. 58 ›› Issue (3): 638-650.doi: 10.7544/issn1000-1239.2021.20200298

Previous Articles     Next Articles

A Programming Paradigm Combining Programmer and Neural Network to Promote Automated Program Generation

Zhou Peng1,2, Wu Yanjun1,3, Zhao Chen1,3   

  1. 1(Institute of Software, Chinese Academy of Sciences, Beijing 100190);2(University of Chinese Academy of Sciences, Beijing 100049);3(State Key Laboratory of Computer Science (Institute of Software, Chinese Academy of Sciences), Beijing 100190)
  • Online:2021-03-01
  • Supported by: 
    This work was supported by the Strategic Priority Research Program of Chinese Academy of Sciences(A) (Y8XD373105) and the Key Research Program of Frontier Sciences, CAS (ZDBS-LY-JSC038).

Abstract: Program generation is one of the core research challenges in AI. At present, the neural network methods driven by input-output data are very popular for program generation modeling. Because of incomplete information input to the model, and complete dependency and limited memory capacity of the neural network, the learning performances of these models suffer from the challenges of poor generalization, generated program accuracy assurance, and being not competent for dealing with common program structures. The memory capacity of neural network can not meet the variable storage requirements of conventional programs. Thus, we propose a programming paradigm merging the strengths of human’s experience and perception with those of neural network’s learning from data samples. Human programmers provide the overall program structure roughly, and leverage the neural network to generate the local trivial detail automatically. The programs run on an abstract computer like digital computer, but are end-to-end differentiable, which consists of differentiable controller, extended external memory relative to internal memory cells of neural network, and differentiable instruction set represented by differentiable state transfer function library. So, it can not only receive input-output samples but also program and execute instructions like traditional digital computers, and its extended memory visible from outside provides more capacity for program variable representation. The advantage is to promote program generation’s practical applicability. The experimental results indicate that the method is effective and gets much better learning performance than other typical methods in program generation.

Key words: intelligent software, program generation, software engineering, differentiable programming language, artificial intelligence

CLC Number: