A Survey of Automatic Code Generation from Natural Language
0
조회
0
다운로드
1
인용
0
참고문헌
키워드
초록
Many researchers have carried out studies related to programming languages since the beginning of computerscience. Besides programming with traditional programming languages (i.e., procedural, object-oriented, functionalprogramming language, etc.), a new paradigm of programming is being carried out. It is programming withnatural language. By programming with natural language, we expect that it will free our expressiveness incontrast to programming languages which have strong constraints in syntax. This paper surveys the approachesthat generate source code automatically from a natural language description. We also categorize the approachesby their forms of input and output. Finally, we analyze the current trend of approaches and suggest the futuredirection of this research domain to improve automatic code generation with natural language. From theanalysis, we state that researchers should work on customizing language models in the domain of source codeand explore better representations of source code such as embedding techniques and pre-trained models whichhave been proved to work well on natural language processing tasks.
Abstract
Many researchers have carried out studies related to programming languages since the beginning of computerscience. Besides programming with traditional programming languages (i.e., procedural, object-oriented, functionalprogramming language, etc.), a new paradigm of programming is being carried out. It is programming withnatural language. By programming with natural language, we expect that it will free our expressiveness incontrast to programming languages which have strong constraints in syntax. This paper surveys the approachesthat generate source code automatically from a natural language description. We also categorize the approachesby their forms of input and output. Finally, we analyze the current trend of approaches and suggest the futuredirection of this research domain to improve automatic code generation with natural language. From theanalysis, we state that researchers should work on customizing language models in the domain of source codeand explore better representations of source code such as embedding techniques and pre-trained models whichhave been proved to work well on natural language processing tasks.
참고문헌 (48)
- D. Price, "NaturalJava: a natural language interface for programming in Java", Proceedings of the 5th International Conference on Intelligent User Interfaces, pp.207~211 (2000)
- D. Vadas, "Programming with unrestricted natural language", Proceedings of the Australasian Language Technology Workshop, pp.191~199 (2005)
- M. Allamanis, "A survey of machine learning for big code and naturalness", ACM Computing Surveys(CSUR), 51(4), pp.1~37 (2018)
- G. Neubig, "Modelling Natural Language, Programs, and their Intersection", Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Tutorial Abstracts, pp.1~3 (2018)
- O. Pulido-Prieto, "A survey of naturalistic programming technologies", ACM Computing Surveys(CSUR), 50(5), pp.1~35 (2017)
- G. L. White, "A theory of the relationships between cognitive requirements of computer programming languages and programmers’ cognitive characteristics", Journal of Information Systems Education, 13(1), pp.59~66 (2002)
- C. Ghezzi, "Software Engineering Education in the Modern Age", pp.115~127 (2005), Springer
- M. Allamanis, "Bimodal modelling of source code and natural language", Proceedings of the 32nd International Conference on Machine Learning (ICML), pp.2123~2132 (2015)
- P. Clark, "Km–the knowledge machine 2.0: user’s manual", Department of Computer Science, pp.2004
- A. Desai, "Program synthesis using natural language", Proceedings of the 38th International Conference on Software Engineering, pp.345~356 (2016)
- G. E. Heidorn, "An interactive simulation programming system which converses in English", Proceedings of the 6th Conference on Winter Simulation, pp.781~794 (1973)
- G. Little, "Translating keyword commands into executable code", Proceedings of the 19th Annual ACM Symposium on User Interface Software and Technology, pp.135~144 (2006)
- R. Knoll, "Pegasus: first steps toward a naturalistic programming language", Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, pp.542~559 (2006)
- A. Cozzie, "Macho : Programming with Man Pages", Proceedings of the 13th Workshop on Hot Topics in Operating Systems (HotOS) (2011)
- X. Gu, "Deep code search", Proceedings of 2018 IEEE, 2018, 933~944
- "Latent predictor networks for code generation" (2016)[URL]
- "A syntactic neural model for general-purpose code generation" (2017)[URL]
- T. J. Schriber, "Simulation using GPSS", pp.1974
- S. Gulwani, "Nlyze: Interactive programming by natural language for spreadsheet data analysis and manipulation", Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, pp.803~814 (2014)
- S. Shi, "Automatically solving number word problems by semantic parsing and reasoning", Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, pp.1132~1142 (2015)
- S. Mandal, "Natural language programing with automatic code generation towards solving addition-subtraction word problems", Proceedings of the 14th International Conference on Natural Language Processing (ICON), pp.146~154 (2017)
- "A framework for creating natural language user interfaces for action-based applications" (2004)[URL]
- A. Begel, "Spoken programs", Proceedings of 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL, 2005, 99~106
- M. Mefteh, "Ara_Pegasus: a new framework for programming using the Arabic natural language", Proceedings of International Conference on Computing and Information Technology (ICCIT), pp.468~473 (2012)
- H. Lieberman, "No Code Required", pp.331~343 (2010), Morgan Kaufmann
- V. Le, S. Gulwani, "Smartsynth: synthesizing smartphone automation scripts from natural language", Proceeding of the 11th Annual International Conference on Mobile Systems, Applications, and Services, pp.193~206 (2013)
- M. Landhaußer, "NLCI : a natural language command interpreter", Automated Software Engineering, 24(4), pp.839~861 (2017)
- T. Gvero, "Synthesizing Java expressions from free-form queries", Proceedings of the 2015ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp.416~432 (2015)
- C. Quirk, "Language to code: learning semantic parsers for if-this-then-that recipes", Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), pp.878~888 (2015)
- M. Raghothaman, "Swim: synthesizing what I mean-code search and idiomatic snippet synthesis", Proceedings of 2016 IEEE, 2016, 357~367
- Program synthesis from natural language using recurrent neural networks, "X. V. Lin", Department of Computer Science and Engineering, University of Washington, ~, pp.Tech. Rep. No. UW-CSE-17-03-01 (2017)
- "Nl2bash: a corpus and semantic parser for natural language interface to the Linux operating system" (2018)[URL]
- "Seq2sql: generating structured queries from natural language using reinforcement learning" (2017)[URL]
- R. Sirres, "Augmenting and structuring user queries to support efficient free-form code search", Empirical Software Engineering, 23(5), pp.2622~2654 (2018)
- V. Schlegel, "Vajra: step-by-step programming with natural language", Proceedings of the 24th International Conference on Intelligent User Interfaces, pp.30~39 (2019)
- H. Liu, "Metafor: visualizing stories as code", Proceedings of the 10th International Conference on Intelligent User Interfaces, pp.305~307 (2005)
- P. Clark, "Acquiring and using world knowledge using a restricted subset of English", Proceedings of the Eighteenth International Florida Artificial Intelligence Research Society Conference, pp.506~511 (2005)
- P. Clark, "Controlled Natural Language", pp.65~81 (2009), Springer
- K. Somasundaram, "Automatic programming through natural language compiler", Proceedings on the International Conference on Artificial Intelligence (ICAI) (2011)
- M. Soeken, "Objects, Models, Components, Patterns", pp.269~287 (2012), Springer
- N. Kushman, "Using semantic unification to generate regular expressions from natural language", Proceedings of the 2013 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pp.826~836 (2013)
- V. Harinarayan, "Hybrid machine", human computing arrangement, 2007
- "Macho: Writing programs with natural language and examples" (2012)[URL]
- M. Manshadi, "Integrating programming by example and natural language programming", Proceedings of the 27th AAAI Conference on Artificial Intelligence (2013)
- T. M. Mitchell, "Generalization as search", Artificial Intelligence, 18(2), pp.203~226 (1982)
- J. Howard, "Universal language model fine-tuning for text classification", Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (ACL), pp.328~339 (2018)
- J. Devlin, "Bert: pre-training of deep bidirectional transformers for language understanding", Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT), pp.4171~4186 (2019)
- M. E. Peters, "Deep contextualized word representations", Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT), pp.2227~2237 (2018)
